如何在Java中将int转换为三个字节?

jjn*_*guy 2 java byte bit-manipulation bit-shift

我试图将一个转换intbytes三个代表int(大端).

我确定它与逐位和位移有关.但我不知道如何去做.

例如:

int myInt;

// some code

byte b1, b2 , b3; // b1 is most significant, then b2 then b3.
Run Code Online (Sandbox Code Playgroud)

*注意,我知道int是4个字节,三个字节有可能过度/不足.

Jer*_*ten 14

要获得最不重要的字节:

b3 = myInt & 0xFF;
Run Code Online (Sandbox Code Playgroud)

第二个最低有效字节:

b2 = (myInt >> 8) & 0xFF;
Run Code Online (Sandbox Code Playgroud)

第三个最低有效字节:

b1 = (myInt >> 16) & 0xFF;
Run Code Online (Sandbox Code Playgroud)

说明:

对0xFF(二进制11111111)的值进行按位AND运算将返回该数字中的最低有效8位(位0到7).将数字向右移动8次将位8到15放入位0到7,因此与0xFF进行AND运算将返回第二个字节.类似地,将数字向右移动16次将位16到23置于位0到7中,因此与0xFF进行AND运算会返回第3个字节.