Java получает первые и последние 2 байта из int var

Я хочу преобразовать int в 2 байта, представляющих этот int.

Вероятно, нужно использовать побитовое и побитовое смещение, но я не знаю, что делать.

int x; /* val to convert */


// ?????????


int b12; /* the first 2 bytes */
int b34; /* the last  2 bytes */

person Danilo    schedule 12.08.2011    source источник


Ответы (2)


person    schedule
comment
Вероятно, следует (в зависимости от приложения) использовать логический сдвиг вместо арифметического. Кроме того, в первом случае маскирование является избыточным (все маскированные нули все равно смещаются). - person hmakholm left over Monica; 13.08.2011
comment
(Это не имело смысла, потому что я по глупости отредактировал свой комментарий, чтобы сказать что-то совершенно другое. Раньше в нем говорилось что-то о интерпретациях первых двух байтов с прямым порядком байтов и прямым порядком байтов. Извините за путаницу). - person hmakholm left over Monica; 13.08.2011
comment
@ Хеннинг Спасибо. Я изменил >> на >>> - person Paul; 13.08.2011

person    schedule
comment
x ›› 16 не сработает, это подписанная операция. Вместо этого используйте ›››. - person Jeffrey; 13.08.2011