JavaScript 代码是否
var n = 8; // or some arbitrary integer literal
n >> 1;
总是表示“没有余数的整数除法 2”?如果整数文字大于一个字节,我担心的是字节序。
我的问题的背景如下:
如果我有一种不同于 JS 的类型化编程语言,我有一个范围从 0 到 2^32-1 的整数变量,它将适合 uint32。我需要将其转换为具有四个元素的 Uint4Array 以小端顺序排列。
我目前的 JavaScript 方法是:
function uInt32ToLEByteArray( n ) {
var byteArray = new Uint8Array(4);
for( var i = 0; i < 4; i++ ) {
byteArray[i] = n & 255;
n >> 8;
}
return byteArray;
}
这段代码在我的浏览器中有效,但我想知道这是否会在任何地方都有效。主要思想是通过取 LSB 并除以 256 来填充数组。但是真正的除法“/”会将变量转换为浮点变量。所以我使用“>>8”,但这实际上假设了大字节序。