HEX字符串与JS的byte数组的转换

IC卡读卡器web插件在参数传递过程中很多地方都是用字符串,普通字符串和HEX字符串。普通字符串就是一般的文本,支持英文,数字和中文,使用起来非常方便。 但是有很多地方使用的是HEX字符串,HEX字符串就是将一个BYTE数组直接展现为一个字符串,例如数组[0x01,0x02,0xAA,0xBB],我们将其作为HEX字符串显示为0102AABB, 每个字节为2个字符。这样展现更直观。

那么HEX字符串和byte数组之间该如何转换呢?

一、byte数组转换为HEX字符串

function bytestostr(bytes)
{
let str=“”;
for(let i=0;i let k=bytes[i].toString(16);
if(k.length==1)k=“0”+k; //为了保证0-F这些数字对齐,我们需要在前面补0
str+=k;
}
return str;
}

代码很少,我们来执行下看看

let bytes=new Uint8Array(8);
for(let i=0;i let str = bytestostr(bytes);
console.log(str);

NFC读写器web插件数组转hex字符串

二、HEX字符串转换byte数组

function strtobytes(hexstr)
{
let len = hexstr.length/2;//取得字符串的长度
let bytes=new Uint8Array(len);//初始化数组
let str=“”;
for(let i=0;i bytes[i] = parseInt(hexstr.substring(i2,i2+2),16);//按照每2位为一个字节来转换
}
return bytes;
}

同样来测试看看

var str=“AABBCCDD”;
let bytes=strtobytes(str);
console.log(bytes);

转自https://www.youwokeji.com.cn/CloudReader/note04.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值