Android蓝牙通信时中byte与hex的相互转换

Android开发时,输入或接收的数据一般都是String类型的,以十六进制表示;而硬件设备接收的都是byte类型的字节流。所以在开发时就需要对两种数据做转换。

byte是一种数据类型,是整型的一种,只不过是8位的。Java中整型有四种:byte,short,int,long。区别是表示的数值范围不同,byte是8位的,取值范围是-127~128;而其他类型比如int,是32位的;short是16位;long是64位。

而hex,是16进制,并非数据类型。

Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示。所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符,并组合起来得到byte转换到16进制字符串的结果。

同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上。

根据以上原理,我们就可以将byte[] 数组转换为16进制字符串了,当然也可以将16进制字符串转换为byte[]数组了。

其实简单来说就是二进制到十六进制的转化,考虑到我们经常以-127~128的十进制表示byte数据,我们在思考时可以看做是十进制转二进制再转十六进制,但是在计算机中还是二进制转十六进制。

https://www.cnblogs.com/Free-Thinker/p/6529584.html

其他详细及主要只是请转步这篇博客,作者写很详细也很透彻。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值