我的问题包括字节流或字节数组。 这些
没问题'\u0000'
'\u0000'
'\u0001'
'\u0010'
但问题在于我解码了一些特殊字符
'\u0000'
'\u0000'
'\u0000'
'�'
从右到左(或从下到上)我可以将这4个字节的数值变为1整数或数字。但我不知道这是否正确
toInt (buff){
console.log('buff ' , typeof buff[0]);
for(let b of buff){
console.log('b' , b);
}
return (buff[3] & 0x000000ff ) |
(buff[2] & 0x0000ff00 ) << 8 |
(buff[1] & 0x00ff0000 ) << 16 |
(buff[0] & 0xff000000 ) << 24 ;
}
答案 0 :(得分:1)
我不确定我是否正确理解了您的问题,但听起来您想要将表示十六进制字节的字符串数组转换为数字。
如果您有十六进制数字的字符串表示形式,则可以使用以下内容进行转换:
function bufferToInt(buff) {
var string = buff.join('');
return parseInt(string, 16); // parseInt allows specifying a base
}
bufferToInput(['ff', 'ff']); // This returns 65535
假设buff中的每个元素都包含一个十六进制字节的字符串表示,例如&#34; ff&#34;上面应该允许使用主要内置函数简单地转换为数字。