我正在使用此函数将字节数组转换为十六进制字符串:
function toHexString(bytes)
{
return bytes.map(function (byte)
{
return (byte & 0xFF).toString(16)
}).join('')
}
问题是函数在一个字符中写入字节< = 15(十六进制为F),例如:
任何想法?
答案 0 :(得分:0)
您可以这样做:
function toHexString(bytes) {
var result = bytes.map(function (byte) {
if(byte>15)
return (byte & 0xFF).toString(16)
else
return '0'+(byte & 0xFF).toString(16)
}).join('')
}
如果字节值大于15,请检查字节值,如果没有将0
添加到结果中。
答案 1 :(得分:0)
如果byte低于16,toString(16)
将返回一个字符,因此您必须添加所需的零。否则,如果byte为16或更多,您可以使用原始代码,因为toString(16)
返回两个字符。
if (byte < 16)
return '0' + byte.toString(16);
else
...