Float32Array和Int32Array之间的区别

时间:2016-09-30 10:06:18

标签: javascript typed-arrays

这有什么区别:

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翻译成二进制表示形式?

2 个答案:

答案 0 :(得分:4)

是的,他们这样做。假设little-endianness,设置为值Int32Array的{​​{1}}元素的二进制表示将具有31个零位,后跟1个1位。

1的相应元素具有位模式Float32Array。 (第一位是符号,后面是 exponent ,最后一位是有效数字)。

答案 1 :(得分:1)

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

相关问题