将NodeJS缓冲区转换为整数

时间:2019-05-11 17:57:52

标签: node.js buffer

我想使用NodeJS中的randomBytes生成随机数。环顾四周后,我发现了一种将缓冲区转换为整数的方法;

const integer = parseInt(buffer.toString("hex"), 16)

使用此方法是否有问题。我已经看到了其他使用buffer.readUIntBE和其他类似方法的解决方案。我想知道他们比上面的解决方案有什么优势

1 个答案:

答案 0 :(得分:0)

也许不一定是错误,但是将缓冲区转换为其十六进制字符串表示形式,然后将其解析为一个数字,至少可以说,这不是很简单且不必要的资源消耗。

缓冲区read方法主要执行数字运算(例如here),并且应该减少资源消耗,同时,我认为,无论谁读取您的代码,都更容易解释。

function randomUInt32() {
   return crypto.randomBytes(4).readUInt32BE();
}

vs。

function randomUInt32() {
   return parseInt(crypto.randomBytes(4).toString("hex"), 16);
}