美文网首页
字节 byte

字节 byte

作者: 杰子他爸 | 来源:发表于2019-05-31 14:16 被阅读0次

      1 byte = 8 bit

    1、获取个 Byte 的各个 Bit 值 

    /**

         * 把byte转为字符串的bit

         */  

    public static String byteToBit(byte b) {  

    return ""  

    + (byte) ((b >> 7) & 0x1) + (byte) ((b >> 6) & 0x1)  

    + (byte) ((b >> 5) & 0x1) + (byte) ((b >> 4) & 0x1)  

    + (byte) ((b >> 3) & 0x1) + (byte) ((b >> 2) & 0x1)  

    + (byte) ((b >> 1) & 0x1) + (byte) ((b >> 0) & 0x1);  

        }  

    2、byte数组转换成十六进制(bytesToHexString)

    public String bytesToHexString(byte[] bArr) {

        StringBuffer sb = new StringBuffer(bArr.length);

        String sTmp;

        for (int i = 0; i < bArr.length; i++) {

            sTmp = Integer.toHexString(0xFF & bArr[i]);

            if (sTmp.length() < 2)

                sb.append(0);

            sb.append(sTmp.toUpperCase());

        }

        return sb.toString();

    }

    3、byte[i] & 0xFF原因(byte为什么要&上0xff?)

    // 保持二进制补码的一致性 因为byte类型字符是8bit的 而int为32bit 会自动补齐高位1 所以与上0xFF之后可以保持高位一致性 当byte要转化为int的时候,高的24位必然会补1,这样,其二进制补码其实已经不一致了,&0xff可以将高的24位置为0,低8位保持原样,这样做的目的就是为了保证二进制数据的一致性。

    相关文章

      网友评论

          本文标题:字节 byte

          本文链接:https://www.haomeiwen.com/subject/xcwwtctx.html