JAVA byte赋值的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/eyoulc123/article/details/52496236

这两天利用java进行消息编解码的时候,总是碰到一个问题,需要给byte赋值.

这里写图片描述
需要将第一位地址的值 aa赋给一个变量,就很是比较麻烦。今天写了一个,记录下来

    public static  byte generateByte(String s) {

        byte tmp = 0;
        char[] arr = s.toCharArray();
        if(arr.length > 2){
            return tmp;
        }
        int t0 = Integer.parseInt(Character.toString(arr[0]), 16);
        int t1 = Integer.parseInt(Character.toString(arr[1]), 16);
        byte tmp0 = (byte)t0;
        byte tmp1 = (byte)t1;
        tmp = (byte) (tmp0 << 4);
        tmp = (byte) (tmp | tmp1);
        return tmp;
    }

byte数组打印代码

    /**
     * 
     * @Title: getHexByte 
     * @Description: 将二进制码流变成可打印的string类型
     * @param b : 需要打印的码流
     * @param start: 打印的开始点
     * @param length:打印长度
     * @return
     * @return: StringBuilder
     */
    public static StringBuilder getHexByte(byte[] b,int start, int length){
        int t = 0;
        StringBuilder sb = new StringBuilder();
        for (int i = start; i < start + length; i++) {

            if(i > 2 && b[i-1] == 'U' && b[i-2] == 'U'){
                break;
            }
            String hex = Integer.toHexString(b[i] & 0xFF);
            if (hex.length() == 1) {
                hex = '0' + hex;
            }
            sb.append(" ").append(hex.toUpperCase());

            t++;
            if(t % 16 == 0){
                sb.append("\n");
            }
        }
        sb.append("\n");
        return sb;  
    }
展开阅读全文

没有更多推荐了,返回首页