java 对 字节的一些操作

java 对 字节的一些操作


1.将单个字节转换成二进制字符串

/**
     * 把单个字节转换成二进制字符串
     */
    public static String byteToBin(byte b) {
          
   
        String zero = "00000000";
        String binStr = Integer.toBinaryString(b & 0xFF);
        if(binStr.length() < 8) {
          
   
            binStr = zero.substring(0, 8 - binStr.length()) + binStr;
        }
        System.out.println(binStr);
        return binStr;
    }

2.获取单个字节中某一位bit

/**
     * 获取单个字节中某一位bit的值,采用字符取值方式
     */
    public static Integer getBitByByte(byte b, int index) {
          
   
        if(index >= 8) {
          
    return null; }
        String binStr = byteToBin(b);
        return Integer.parseInt(String.valueOf(binStr.charAt(index)));
    }

3.翻转byte

public static byte fzByte(byte b){
          
   
        return (byte) ~b;
    }

4. 将有符号的两个byte转成int

/**
     * 将有符号的两个byte转成int
     * 
     * 有符号的 二进制 在内存中 用补码表示。这里先是转换成原码(翻转 + 1),再求值。
     */
    public static Integer getTwoByteToInt(byte[] b){
          
   
        if (b.length != 2) return null;
        return fzByte(b[0]) & 0xFF << 8 | (fzByte(b[1]) + 0x01) & 0xFF;
    }

很少接触对byte、二进制、十六进制等等数据操作,做个记录。



未完待续…

经验分享 程序员 微信小程序 职场和发展