我使用了以下语句 byte[3]=(byte)0x80
0x80是十六进制值128,我也试过这个语句byte [3] =(byte)128
在第一种情况下,打印时输出为-128 在第二种情况下,输出为-1
现在我该如何解决这个问题。有没有其他方法将10000000存储到字节数组
答案 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
...