BCD HexString Ascii

    private final static byte[] aData"0123456789ABCDEF".getBytes();

private final static String hexString = "30313233343536373839414243444546";

 

1.aData经过Bytes2HexString就会变成hexString

Bytes2HexString方法中把一个字节拆分为两个字接,比如0,在Ascii中对应48,二进制为0011 0000,把高四位赋给一个字节,低4位给一个字节,则为30.F,对应Ascii0100 0110,高4位赋给一个字节,低4位给一个字节,则为46

 

2.hexString 经过HexStringToBytes处理之后就会变成aDatadebug时看到的是[48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]),

会把两个字符合为一个字符,比如“30”,char[0]=3,char[1]=0,char[0]通过方法parse返回3,为0000 0011左移4位,得到0011 0000,然后char[1]过方法parse返回0,即为0000 0000,两个数做“或”运算,即可得到十六进制30,即十进制的48

还比如41char[0]=4,char[1]=1,char[0]通过方法parse返回4,为0000 0100左移4位,得到0100 0000,然后char[1]过方法parse返回1,即为0000 0001,两个数做“或”运算,即可得到65,然后强制转换成byte,赋给数组中的一个元素。

 

3.new String(aData)就打印出0123456789ABCDEF

 

 

4.private final static byte[] bcdData = {15,06,25};bcdToAscii把一个byte拆为两个byte15对应的二进制是 0000 1111,先得到高四位(bcdByte[i] >> 4 & 0xF),赋给一个字节,再把第四位赋给一个字节,其他同样处理。

byte[] tData = ByteUtil.bcdToAscii(bcdData);debug时(debug看到的是十进制的数字)可以看到tData=[48, 70, 48, 54, 49, 57],new String(tData)打印出来“0F0619.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值