牛骨文教育服务平台(让学习变的简单)
博文笔记

JAVA byte赋值的问题

创建时间:2016-09-10 投稿人: 浏览次数:11270

这两天利用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("
");
            }
        }
        sb.append("
");
        return sb;  
    }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。