如何在nodejs缓冲区中存储整数?
Nodejs Buffer
非常强大。然而,它似乎适合存储字符串。构造函数采用字符串、字节数组或要分配的字节大小。
我使用的是 Node.js 0.4.12 版本,我想在缓冲区中存储一个整数。不是integer.toString()
,而是整数的实际字节。有没有一种简单的方法可以做到这一点,而无需循环整数并进行一些位调整?我可以做到这一点,但我觉得这是其他人在某个时候一定遇到过的问题。
The nodejs Buffer
is pretty swell. However, it seems to be geared towards storing strings. The constructors either take a string, an array of bytes, or a size of bytes to allocate.
I am using version 0.4.12 of Node.js, and I want to store an integer in a buffer. Not integer.toString()
, but the actual bytes of the integer. Is there an easy way to do this without looping over the integer and doing some bit-twiddling? I could do that, but I feel like this is a problem someone else must have faced at some time.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
http://nodejs.org/docs/v0.6.0/api/buffers.html# buffer.writeUInt8
http://nodejs.org/docs/v0.6.0/api/buffers.html#buffer.writeUInt8
对于最新版本的 Node,这要容易得多。以下是 2 字节无符号整数的示例:
或者 4 字节有符号整数的示例:
在节点 v0.5.5 中添加了不同的
writeInt
函数。查看这些文档以更好地理解:
缓冲区
writeUInt16BE/LE
writeUIntBE/LE
allocUnsafe
With more recent versions of Node this is much easier. Here's an example for a 2 byte unsigned integer:
Or for a 4 byte signed integer:
The different
writeInt
functions were added in node v0.5.5.Have a look at these docs for a better understanding:
Buffer
writeUInt16BE/LE
writeUIntBE/LE
allocUnsafe
由于它不是内置的 0.4.12 你可以使用这样的东西:
Since it's not builtin 0.4.12 you could use something like this:
这是非常有效的方法,但使用了一些“位调整”
This is something very efficient but uses some "bit twiddling"