我被要求将整数转换为 32 位二进制数。
所以被使用integer.toString(2)
并得到所需的0和1的32位二进制格式的值。但实际上我被要求做的是将整数转换为 4 字节的数据。
我无法按照建议获得输出。我用过integer.toString(8)
, integer.toString(16)
。但没有用。
Example:
num=1065489844
num.toString(2) //Output: 111111100000100001010110110100
num.toString(8) //Output: 7740412664
请大家指出我的不足之处。
现在你可以使用ArrayBuffer
and DataView
。它们是原生的,因此如果您需要经常使用它,性能会更好。
function toBytesInt32 (num) {
arr = new ArrayBuffer(4); // an Int32 takes 4 bytes
view = new DataView(arr);
view.setUint32(0, num, false); // byteOffset = 0; litteEndian = false
return arr;
}
等于
function toBytesInt32 (num) {
arr = new Uint8Array([
(num & 0xff000000) >> 24,
(num & 0x00ff0000) >> 16,
(num & 0x0000ff00) >> 8,
(num & 0x000000ff)
]);
return arr.buffer;
}
它使用 javascript 位运算符来实现这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)