位移位是否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