Как скопировать примитивную память типа в Java? - PullRequest
0 голосов
/ 10 сентября 2011

У меня есть два символа = 4 байта, которые представляют целочисленное значение (полученное из потока).

Как я могу скопировать их в примитивную переменную int?

Ответы [ 2 ]

2 голосов
/ 10 сентября 2011

Вам лучше читать 4 байта как int с самого начала.Однако, чтобы превратить два символа в int, вы можете использовать

char ch1, ch2;
int i = (ch1 << 16) + ch2; // or ch2 << 16 + ch1

. Вы должны знать, является ли порядок младшим или старшим.

2 голосов
/ 10 сентября 2011

Вот один из возможных способов сделать это:

char a = 0x00FF;
char b = 0x0F0F;
int  i = b << 16 | a;

НО: вам придется беспокоиться о порядке байтов и о том, что int подписано.

...