Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获得可用的无符号32位整数?_Javascript - Fatal编程技术网

Javascript 如何获得可用的无符号32位整数?

Javascript 如何获得可用的无符号32位整数?,javascript,Javascript,它以数组形式存在(签名版本为),但我被告知,一旦访问该值,它将成为一个普通的JS编号 let number = (new Unit32Array(1)).fill(1)[0]; 其中,变量号被实现为双精度,一旦执行逐位操作,它将转换为32位有符号整数 如果你真的可以在数组中使用未签名的表示形式,我就不理解Unit32Array的用途,也就是说,一旦你访问了它,它就会以一个正常的数字弹出 function analyze () { // let test = 2147483647; // m

它以数组形式存在(签名版本为),但我被告知,一旦访问该值,它将成为一个普通的JS编号

let number = (new Unit32Array(1)).fill(1)[0];
其中,变量号被实现为双精度,一旦执行逐位操作,它将转换为32位有符号整数

如果你真的可以在数组中使用未签名的表示形式,我就不理解Unit32Array的用途,也就是说,一旦你访问了它,它就会以一个正常的数字弹出

function analyze () {
  // let test = 2147483647; // max 32 bit integer
  // let test = -2147483647; // min 32 bit integer
  for(let place = 0; place < 32; place++){
    let power2 = Math.pow(2, place);
    let bit = test & power2;
    console.log(place, bit)
  }
}
analyze();

/*
2^0 is 1 is 0x1
2^1 is 2
2^2 is 4
2^3 is 8
.
.

2^31 is 2147483648
2^32 is 4294967296
*/
函数分析(){
//let test=2147483647;//最大32位整数
//let test=-2147483647;//最小32位整数
for(让place=0;place<32;place++){
设power2=Math.pow(2,place);
设位=测试和电源2;
console.log(位置,位)
}
}
分析();
/*
2^0是1是0x1
2^1等于2
2^2等于4
2^3等于8
.
.
2^31是2147483648
2^32是4294967296
*/

使用三次右移将数字用作无符号。它从本质上防止符号扩展(并与UINT32阵列配合使用)


大多数人都不知道JavaScript可以很好地处理位操作。但是,您需要将其与


uint是无符号整数。Unit32Array是无符号整数的数组。这是一个很酷的技巧。您只是将符号位转换为值位,因此2^32是4294967296,而将5保留在原位。。。所以96而不是91结束了。
 > var myNumber = -5;
-5
> myNumber >>> 0
4294967291
let buffer = new ArrayBuffer(16); // create a buffer of length 16

let view = new Uint32Array(buffer); // treat buffer as a sequence of 32-bit integers