Float32Array 和 Int32Array 的区别

Difference between Float32Array and Int32Array

这有什么区别:

var buffer = new ArrayBuffer(4);
var view = new Float32Array(buffer);
view[0] = 1; 

还有这个

var buffer = new ArrayBuffer(4);
var view = new Int32Array(buffer);
view[0] = 1; 

我想知道 Float32ArrayInt32Array 之间的区别。他们将 1 翻译成二进制表示的方式不同吗?

是的,他们有。假设采用小端法,Int32Array 的元素的二进制表示设置为值 1 将具有 31 个零位,后跟 1 个一位。

Float32Array 的对应元素具有位模式 00111111100000000000000000000000。 (第一位是符号,后面的8位是指数,最后一位是有效数)。

A​​ Float32Array 将值表示为 32 位浮点数(即十进制数),而 Int32Array 将它们表示为 32 位有符号整数。

这个例子展示了差异:

const floatArray = new Float32Array(1);
const intArray = new Int32Array(1);

floatArray[0] = 1.5;
intArray[0]   = 1.5;

console.log(floatArray[0]); // = 1.5
console.log(intArray[0]);   // = 1