java byte转二进制字符串

    xiaoxiao2021-03-26  30

    直接上代码:

    byte tByte = -2; String tString = Integer.toBinaryString((tByte & 0xFF) + 0x100).substring(1); System.out.println("tString:" + tString); 执行结果:

    tString:11111110

    代码说明:

    1.主要用到了Integer.toBinaryString方法转化为二进制的。但这个方法的参数是int型,所以需要先转换为int型。

    2.转换为int的方式:tByte & 0xFF

    tByte:-2 如果自动转换为int型依旧是-2,但是-2的int型转化为二进制是11111111111111111111111111111110。

    因为Java中是以补码的方式显示内容的,-2的二进制原码是10000000000000000000000000000010,转化为反码+1为补码,就是上述数据了。

    但是我们想要的是10000010的原码,补码为11111110。所以对上述数据进行 & 0xFF的操作

    这一步看不懂的请看java &0xFF

    3.上述步骤后,显示的为如下。

    Integer.toBinaryString(tByte & 0xFF) => 11111110 // tByte = -2 这个需要把tByte=2,如下所示:

    Integer.toBinaryString(tByte & 0xFF) => 10 // tByte = 2

    那么+0x100后再截取后面的八位,就是填充字符串的了。

    转载请注明原文地址: https://ju.6miu.com/read-664128.html

    最新回复(0)