如何在java中将字节转换为二进制?
我已尝试通过代码从10000101转换为-123如何在java中将字节转换为二进制?,java,binary,byte,Java,Binary,Byte,我已尝试通过代码从10000101转换为-123 byte sum = (byte) (Integer.valueOf(10000101, 2) & 0xffff) "; 现在我不知道如何从-123转换回10000101 关于使用JavaAPI进行转换有什么建议吗 稍微扩展一下David Wallace的评论,您可以使用以下代码: String fromByteToString = String.format("%8s", Integer.toBinaryString(sum
byte sum = (byte) (Integer.valueOf(10000101, 2) & 0xffff) ";
现在我不知道如何从-123转换回10000101
关于使用JavaAPI进行转换有什么建议吗 稍微扩展一下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')
在这种情况下不是必须的,因为二进制结果字符串(10000101)以1开头。您知道Integer
类的toBinaryString
方法吗?@community。。这不是同一个问题。。OP在此要求将字节转换为二进制字符串。。这是一个完全不同的问题。。。