一次转换十六进制字符串2个字符

时间:2014-03-18 21:38:34

标签: javascript

我正在阅读一些将十六进制字符串解析为缓冲区的JavaScript代码,如下所示:

function bufferFromHexString(string)
{
    var buffer = new Buffer(string.length/2);

    for (var i=0; i<string.length/2; i++)
    {
        buffer.writeInt8( parseInt(input.substr(i*2,2), 16), i );
    }

    return buffer;
}

但是我不确定为什么一次两个字符而不是一个字符。谁能解释一下呢?

2 个答案:

答案 0 :(得分:1)

需要两个十六进制字符才能生成一个8位(一个字节)的整数。这就是它的全部内容。

答案 1 :(得分:1)

一个字节(8位)具有2^8=256个可能的值。

要以十六进制表示256,您需要两位数(例如0xff = 255d)。

00 = 0
01 = 1
02 = 2
...
fd = 253
fe = 254
ff = 255