我尝试通过代码从 10000101 转换为 -123
byte sum = (byte) (Integer.valueOf(10000101, 2) & 0xffff) ";
现在我不知道如何从-123转换回10000101。
关于使用java API进行转换有什么建议吗?
最佳答案
稍微扩展一下 David Wallace 的评论,您可以使用以下代码来完成:
String fromByteToString = String.format("%8s", Integer.toBinaryString(sum & 0xFF)).replace(' ', '0');
System.out.println(fromByteToString);
使用 sum & 0xFF
执行按位 AND 运算:
-123 = 11111111111111111111111110000101
0xFF = 00000000000000000000000011111111
res. = 00000000000000000000000010000101
请注意,在这种情况下,replace(' ', '0')
不是必须的,因为二进制结果字符串以 1 开头 (10000101)。
关于java - java中如何将字节转换为二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40691098/