位移位是否JavaScript代码整数除法和在JavaScript
var n = 8; // or some arbitrary integer literal
n >> 1;
总是表示“由2个整数等分无滞留者”?我关心的是如果整数字面大于一个字节的话,
我的问题的背景是这样的:
我有范围的整数变量从0到2^32-1,将适合入UINT32如果我有一个类型的编程语言比JS不同。我需要将它转换成一个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进行分隔来填充数组。但是真正的divions“/”会将该变量转换为浮点变量。所以我使用“>> 8”,但这实际上是假设大的排序。
“此代码的工作在我的浏览器,但我不知道这是否会做无处不在”你的意思是用其他语言?或者你是否要求确认'x >> y'将'x'转换为(带符号)_Int32_。它也保留最左边的位(它们不会成为'0',这是如果你使用'>>>'会发生什么)。 –
随着“无处不在”我想说“在每台机器上的每个浏览器”。我的电脑都是英特尔兼容的,所以我无法确认在大型排序的设备上会发生什么情况。 – user2690527