Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么位缓冲区和缓冲区给我不同的输出?_Javascript_Node.js - Fatal编程技术网

Javascript 为什么位缓冲区和缓冲区给我不同的输出?

Javascript 为什么位缓冲区和缓冲区给我不同的输出?,javascript,node.js,Javascript,Node.js,我试图理解下面的代码是怎么回事 console.log(buffer); >>> <Buffer d6 16 06 37 f7 42 56 f6 45 56 37 47 27 e3 22 36 07 07 e0 c0 b9 85 d9 01 58 db 1b 59 19 db dc 0b 1c 5b 58 5e 99 dc cb 58 dd 1c dd 5b db 17 1c 5b 58 5e ... > 01101010110110 为什么这些片段不精确?我想知

我试图理解下面的代码是怎么回事

console.log(buffer);
>>> <Buffer d6 16 06 37 f7 42 56 f6 45 56 37 47 27 e3 22 36 07 07 e0 c0 b9 85 d9 01 58 db 1b 59 19 db dc 0b 1c 5b 58 5e 99 dc cb 58 dd 1c dd 5b db 17 1c 5b 58 5e ... >
01101010110110


为什么这些片段不精确?我想知道缓冲区的十六进制是否仅仅是ram地址?希望有人能把它弄清楚。:-)

首先,缓冲区不是按十六进制数字分组的,而是按八位字节(字节)分组的,所以应该按8而不是4分组


这些组中的每一组都简单地颠倒过来。这是因为人类可读的表示是,当您读取索引
0
处的位时,它是最右边的。因此,如果从流中逐位读取它们,则从右向左读取每个字节。

首先,缓冲区不是按十六进制数字分组的,而是按八位字节(字节)分组的,因此应该将位按8而不是4分组

这些组中的每一组都简单地颠倒过来。这是因为人类可读的表示是,当您读取索引
0
处的位时,它是最右边的。因此,如果您从流中一点一点地读取它们,则从右向左读取每个字节

const test = new bitBuffer.BitStream(buffer);
console.log(test.readBits(1, false));
console.log(test.readBits(1, false));
console.log(test.readBits(1, false));
console.log(test.readBits(1, false));
console.log(test.readBits(1, false));
console.log(test.readBits(1, false));
console.log(test.readBits(1, false));
console.log(test.readBits(1, false));
console.log(test.readBits(1, false));
console.log(test.readBits(1, false));
console.log(test.readBits(1, false));
console.log(test.readBits(1, false));