2016-11-19 157 views
1

我已经尝试代码从10000101转换为-123如何在Java中将字节转换为二进制文件?

byte sum = (byte) (Integer.valueOf(10000101, 2) & 0xffff) "; 

现在我不知道怎么回从-123任何建议转换为10000101.

有关使用的Java API做的转换?

+0

你知道了'Integer'类的'toBinaryString'方法吗? –

+0

@community ..这不是同一个问题.. OP在这里要求将字节转换为二进制字符串..这是一个完全不同的问题... – user6904265

回答

1

扩展位的大卫·华莱士评论,你可以用这个代码做到这一点:

String fromByteToString = String.format("%8s", Integer.toBinaryString(sum & 0xFF)).replace(' ', '0'); 
    System.out.println(fromByteToString); 

sum & 0xFF你做的按位与运算:

-123 = 11111111111111111111111110000101 
0xFF = 00000000000000000000000011111111 
res. = 00000000000000000000000010000101 

注意,replace(' ', '0')不是必须在这种情况下,因为二进制结果字符串开头(10000101)与1

相关问题