如何在javascript中使用toString(16)来获取用两个字符写的字节

时间:2015-11-17 15:03:31

标签: javascript arrays string

我正在使用此函数将字节数组转换为十六进制字符串:

function toHexString(bytes)
 {
  return bytes.map(function (byte)
   {
    return (byte & 0xFF).toString(16)
   }).join('')
 }

问题是函数在一个字符中写入字节< = 15(十六进制为F),例如:

  • 10 - > A(但我想写0A)

任何想法?

2 个答案:

答案 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
    ...