我尝试通过代码
从10000101转换为-123byte sum = (byte) (Integer.valueOf(10000101, 2) & 0xffff) ";
现在我不知道如何从-123转换回10000101。
有关使用java API进行转换的任何建议吗?
答案 0 :(得分:1)
扩展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)。