如何在nodejs Buffer中存储整数?

nodejs Buffer是相当的膨胀。 但是,它似乎适用于存储string。 构造函数可以接受一个string,一个字节数组,或一个字节的大小来分配。

我正在使用Node.js的版本0.4.12,我想要在缓冲区中存储一个整数。 不是integer.toString() ,而是整数的实际字节。 有没有一个简单的方法来做到这一点,而不是循环遍历整数,并做一些有点twiddling? 我可以做到这一点,但是我觉得这是别人必须面对的问题。

由于它不是内置的0.4.12,你可以使用这样的东西:

 var integer = 1000; var length = Math.ceil((Math.log(integer)/Math.log(2))/8); // How much byte to store integer in the buffer var buffer = new Buffer(length); var arr = []; // Use to create the binary representation of the integer while (integer > 0) { var temp = integer % 2; arr.push(temp); integer = Math.floor(integer/2); } console.log(arr); var counter = 0; var total = 0; for (var i = 0,j = arr.length; i < j; i++) { if (counter % 8 == 0 && counter > 0) { // Do we have a byte full ? buffer[length - 1] = total; total = 0; counter = 0; length--; } if (arr[i] == 1) { // bit is set total += Math.pow(2, counter); } counter++; } buffer[0] = total; console.log(buffer); /* OUTPUT : racar $ node test_node2.js [ 0, 0, 0, 1, 0, 1, 1, 1, 1, 1 ] <Buffer 03 e8> */ 
 var buf = new Buffer(4); buf.writeUInt8(0x3, 0); 

http://nodejs.org/docs/v0.6.0/api/buffers.html#buffer.writeUInt8