javascript - 在javascript中循环遍历缓冲区

标签 javascript node.js

背景

我正在尝试迭代一个基本上包含十六进制值的缓冲区对象。这对我来说是完美的,因为每个十六进制值都是我需要解码的。但是,当我循环遍历数组时,它们会转换为十进制值。如何在不转换值的情况下循环它?

我的代码

  console.log(encoded)
  const buf = Buffer.from(encoded)
  for (const item of buf) {
    console.log(item)
  }

我的一些输出

<Buffer 0c 00 00 00 99 4e 98 3a f0 9d 09 3b 00 00 00 00 68 48 12 3c f0 77 1f 4a 6c 6c 0a 4a 0f 32 5f 31 31 39 38 36 31 5f 31 33 33 39 33 39 40 fc 11 00 09 00 ... 336 more bytes>
12
0
0
0
153
78
152
58
240
157
9
...

原始输出<Buffer 0c 00 ......是所期望的,因为我可以像 0c 这样获取每个输出并用它做一些有意义的事情。

最佳答案

它们没有被转换,它们只是数字。十六进制与十进制是数字的书写方式,但无论如何数字都是相同的。只是当您 console.log 缓冲区时,它会使用十六进制向您显示其内容。但是,当您单独输出它们时,您使用的是 console.log,它使用默认的数字 => 字符串(十进制)。不管怎样,它们都只是数字。

如果您需要这些数字作为十六进制字符串,您可以使用item.toString(16),但我怀疑您希望它们作为数字,在这种情况下只需使用item

关于javascript - 在javascript中循环遍历缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60174082/

相关文章:

node.js - Mocha 测试执行时间太长

javascript - 处理输入字段中的撇号

javascript - 类型错误 : opendirSync is not a function

node.js - 如何在nodeJS应用程序中启动angular2

node.js - 如何生成 key 对并使用它来签名和验证 Node.js 中的文本?

node.js - Azure DevOps 管道打开的文件太多

javascript - 自定义 jQuery 轮播过渡错误

Javascript 对象方法

Javascript TRUE 未定义或在引号中

javascript - 在 webdriver js 中使用Session