如何将二进制值存储到字节数组中

时间:2011-06-20 08:40:00

标签: java

我使用了以下语句 byte[3]=(byte)0x80 0x80是十六进制值128,我也试过这个语句byte [3] =(byte)128

在第一种情况下,打印时输出为-128 在第二种情况下,输出为-1

现在我该如何解决这个问题。有没有其他方法将10000000存储到字节数组

3 个答案:

答案 0 :(得分:3)

问题不在于你如何把价值放进去,而是你如何把它拿出来。

byte[] bytes = new byte[4];
bytes[3] = (byte) 128;
int num = bytes[3] & 0xFF; 
System.out.println(num);

打印

128

答案 1 :(得分:1)

计算机无论如何都以二进制形式存储值,好像你的问题是以二进制形式输出它。

Integer.toBinaryString(字节[3]);

应该这样做。

编辑:误读了你的问题,但正如其他人所说,你需要确保变量是无符号的,以存储超过127的正值。

答案 2 :(得分:0)

A[0]=      x  & 255
A[1]= (x>> 8) & 255
A[2]= (x>>16) & 255
A[3]= (x>>24) & 255
...