есть вот такой буфер hex-значений - fe ff 03 99 00 01
мне нужны последние 2 байта - достаю их так
buf.slice(4,6)
получаю буфер 00 01
как преобразовать их к int что бы получилось 1?
а в случае если бы было 1A 17 получить 6679 и тд.
У класса Buffer есть специальный API для чтения данных. В вашем случае отлично подходит метод Buffer.prototype.readUInt16BE:
var b1 = Buffer.from([0xfe, 0xff, 0x03, 0x99, 0x00, 0x01]);
console.log(b1.readUInt16BE(4)); // 1
var b2 = Buffer.from([0xfe, 0xff, 0x03, 0x99, 0x1A, 0x17]);
console.log(b2.readUInt16BE(4)); // 6679
Можно использовать метод parseInt
для конвертации строки в число , только необходимо, чтобы пробелов не было в строке (к примеру так - "0001"
корректно, а так "00 01"
- нет).
Пример конвертирования hex
в int
:
var hexOne = '0001';
var hexTwo = '1A17';
var one = parseInt(hexOne, 16);
var two = parseInt(hexTwo, 16);
console.log(one);
console.log(two);
Массив в строку можно конвертировать разными способами, к примеру через join
вот так:
var arr = ['1A', '17']; // массив
var hexStr = arr.join(''); // получаем строку `1A17`
var number = parseInt(hexStr, 16); // конвертируем строку в число
console.log(number); // выводим в консоль результат
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно получить аудио-стрим микрофона (не звука во вкладке, а именно микрофона) через расширение ChromeОбычный navigator
Приветствую! У меня на IIS 10 есть 10 JS файлов по 5-10 КБПри заходе на сайт (Если пользователь не имеет кэша (То есть CTRL+ F5)) сайт грузит по 10-20 секунд...