【发布时间】:2015-06-26 07:50:28
【问题描述】:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView/setInt8
只是想在这里澄清一些事情,当这篇文章说:
setInt8() 方法将一个带符号的 8 位整数(字节)值存储在从 DataView 开始的指定字节偏移处。
然后你执行这段代码
var buffer = new ArrayBuffer(8);
var dataview = new DataView(buffer);
dataview.setInt8(1, 3);
dataview.setInt8(3, -3);
缓冲区实际上是:
[
00000000,
00000011,
00000000,
10000011,
00000000,
00000000,
00000000,
00000000
]
最大可能是127?
我想我已经证实了这一点
dataview.setInt8(1,128);
dataview.getInt8(1); // -127
但是...然后我很困惑为什么它会恢复...
dataview.setInt8(1, 255);
dataview.getInt8(1); // -1
dataview.setInt8(1, 257);
dataview.getInt8(1); // 1
由于256 超出了 8 位整数的范围,我不应该收到 dataview.setInt8(1,257) 的错误吗?我只是想确认缓冲区实际上是我上面列出的二进制数组...所以如果将 8 位整数转换为 16 位整数,这会有所不同...谢谢!
【问题讨论】:
标签: javascript binary arraybuffer