java中int轉(zhuǎn)byte數(shù)組怎么實(shí)現(xiàn)

小億
194
2023-12-14 20:20:51

可以使用Java中的ByteBuffer類來(lái)實(shí)現(xiàn)int轉(zhuǎn)byte數(shù)組。

以下是使用ByteBuffer類實(shí)現(xiàn)int轉(zhuǎn)byte數(shù)組的示例代碼:

import java.nio.ByteBuffer;

public class Main {
    public static void main(String[] args) {
        int num = 12345;

        // 創(chuàng)建一個(gè)4字節(jié)的ByteBuffer
        ByteBuffer buffer = ByteBuffer.allocate(4);

        // 將int值寫入ByteBuffer
        buffer.putInt(num);

        // 獲取ByteBuffer中的字節(jié)數(shù)組
        byte[] byteArray = buffer.array();

        // 打印字節(jié)數(shù)組
        for (byte b : byteArray) {
            System.out.println(b);
        }
    }
}

運(yùn)行以上代碼,會(huì)輸出byte數(shù)組的每個(gè)元素值:

0
0
48
57

其中,byte數(shù)組的前兩個(gè)元素值為0,是因?yàn)閕nt值占用4個(gè)字節(jié),而ByteBuffer默認(rèn)使用大端字節(jié)序(Big Endian),將int值高位字節(jié)存儲(chǔ)在byte數(shù)組的前面??梢允褂?code>buffer.order(ByteOrder.LITTLE_ENDIAN);方法設(shè)置使用小端字節(jié)序(Little Endian)。

另外,如果只需要將int值轉(zhuǎn)換為byte數(shù)組,可以使用位運(yùn)算符將int值的每個(gè)字節(jié)提取出來(lái),例如:

int num = 12345;
byte[] byteArray = new byte[4];
byteArray[0] = (byte)(num & 0xFF);
byteArray[1] = (byte)((num >> 8) & 0xFF);
byteArray[2] = (byte)((num >> 16) & 0xFF);
byteArray[3] = (byte)((num >> 24) & 0xFF);

以上代碼將int值的每個(gè)字節(jié)存儲(chǔ)在byte數(shù)組中。注意要使用位運(yùn)算符&>>提取每個(gè)字節(jié)的值。

0