JAVA byte赋值的问题

本文分享了在Java中处理消息编解码时的一种实用方法,特别是如何将十六进制字符串转换为byte值,并提供了一段示例代码来实现这一过程。此外,还介绍了一种将byte数组转换为可打印字符串的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两天利用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;  
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值