我在javascript中有一个unsigned long,我正在尝试将其转换为字节数组(显然是8字节。)这是我到目前为止所拥有的:
var deviceId = parseFloat("353268001238563");
var bytes = new Array(7);
for(var k=0;k<8;k++) {
bytes[k] = value & (255);
value = value >> 8
}
return bytes;
不幸的是,生成的字节不正确。知道我做错了吗?
答案 0 :(得分:2)
>>
运算符似乎不能处理无法在常规32位有符号整数中表示的值,因为它将包装。
黑客解决方案可能是使用常规划分而不是位移:
value = value / 256;