powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / 4 байта в инт?
6 сообщений из 6, страница 1 из 1
4 байта в инт?
    #34137855
JZeleboba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не бейте сильно :)
Есть проблема- получил байтовый массив чтением из файла(впринципе это не важно откуда получил)
получил byte[] bytes;
в bytes записаны данные - 4байтовые значения которые мне надо вытащить, то есть сформировать из каждых четырех байт (подряд) по одному инту или даблу.Не знаком со стандартными классами которые могут это сделать поэтому делал так:
int[]a;
a[j]=(bytes )|((bytes[i+1])<<8)|((bytes[i+2])<<16)|((bytes[i+3])<<24)
но не уверен что правильно.Подскажите можно ли сделать то же стандартными средствами.Спасибо.
...
Рейтинг: 0 / 0
4 байта в инт?
    #34137883
Фотография Сашко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в яве не программирую, поэтому точно не знаю, но думаю можно попробовать так?

int new DataInputStream( new ByteArrayInputStream(byte[] buffer) ).readInt( )
...
Рейтинг: 0 / 0
4 байта в инт?
    #34137918
JZeleboba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо,сейчас посмотрю что можно из этого сделать..
...
Рейтинг: 0 / 0
4 байта в инт?
    #34137940
Фотография Ruslan.Isbarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 public   static   int  bytesToInt( byte [] bytes,  int  offset) {
         return  (bytes[offset +  3 ] <<  24  & 0xFF000000)   +
               (bytes[offset +  2 ] <<  16  & 0xFF0000)     +
               (bytes[offset +  1 ] <<  8   & 0xFF00)       +
               (bytes[offset]           & 0xFF);
    }

     public   static   int  bytesToInt( byte [] bytes) {
         return  bytesToInt(bytes,  0 );
    }

     public   static   byte [] intToBytes( int  value,  int  offset) {
         byte [] out =  new   byte [offset +  4 ];

        out[offset +  3 ] = ( byte )(value >>>  24 );
        out[offset +  2 ] = ( byte )(value >>>  16 );
        out[offset +  1 ] = ( byte )(value >>>  8 );
        out[offset]      = ( byte ) value;

         return  out;
    }

     public   static   byte [] intToBytes( int  value) {
         return  intToBytes(value,  0 );
    }
...
Рейтинг: 0 / 0
4 байта в инт?
    #34137968
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стандартные средства есть!

1) облечь исходный массив byte[] в поток DataInputStream и из него прочитать уже по int
2) использовать библиотеку java.nio в которой гораздо продвинетее средства
...
Рейтинг: 0 / 0
4 байта в инт?
    #34137985
JZeleboba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем спасибо
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / 4 байта в инт?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]