Конвертировать буфер NodeJS в целое число - PullRequest
0 голосов
/ 11 мая 2019

Я хочу генерировать случайные числа, используя randomBytes в NodeJS. Посмотрев вокруг, я нашел метод, который преобразует буферы в целые числа;

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

Что-то не так с использованием этого метода. Я видел другие решения, которые используют buffer.readUIntBE и другие подобные методы. Мне интересно, какое преимущество они имеют над решением выше

1 Ответ

0 голосов
/ 22 мая 2019

Возможно, не обязательно неправильно , но преобразование буфера в его шестнадцатеричное строковое представление для последующего синтаксического анализа его в число кажется, по меньшей мере, не очень простым и излишне ресурсоемким.

Буферные read методы в основном выполняют числовые операции (например, здесь ) и должны быть намного менее ресурсоемкими, а также, на мой взгляд, более простыми для интерпретации для любого, кто читает ваш код.

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

против

function randomUInt32() {
   return parseInt(crypto.randomBytes(4).toString("hex"), 16);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...