#javascript #python #node.js
Вопрос:
Я нашел где-то в переполнении стека, что мы можем достичь int.from_bytes()
функциональности в Node.js с помощью:
const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]) // 0x12345678 = 305419896
console.log(buf.readUInt32BE(0)) // 305419896
Есть ли какая-либо альтернатива int.to_bytes()
? Я хочу сначала использовать int.from_bytes()
, а затем нужно выполнить некоторые манипуляции и снова хочу преобразовать его с помощью int.to_bytes()
.
Комментарии:
1. Привет, просто используй
writeUInt32BE
вместоread
…2. я получаю разные результаты … это логика python, которую я хочу реализовать i = int.from_bytes(полный, «большой») < # сдвиг влево в возврате битов pad (т. е. to_bytes(bfs, «большой»)), но когда он преобразуется с использованием to_bytes, он также использует «bfs», и взятие i вычисляется с использованием from_bytes
Ответ №1:
Вы можете вернуть исходные байты, используя .values()
метод, возвращающий итератор массива, поэтому его можно использовать с оператором распространения или Array.from
, если вам нужно:
const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]) // 0x12345678 = 305419896
console.log(buf.readUInt32BE(0)) // 305419896
console.log(...buf)
// 18 52 86 120
const arr = Array.from(buf)
console.log(arr)
// [18, 52, 86, 120]
Обратите внимание, что console.log
выходные данные представлены в десятичном, а не шестнадцатеричном формате.
Комментарии:
1. i = int.from_bytes(полный, «большой») < # сдвиг влево в возврате битов pad (т. е. to_bytes(bfs, «большой»)) Это логика, которую я хочу реализовать, но когда она преобразуется с использованием to_bytes, она также использует «bfs», и взятие i вычисляется с использованием from_bytes
Ответ №2:
в python класс int
имеет метод классов from_bytes
bytes = [0x12, 0x34, 0x56, 0x78]
a = int.from_bytes(bytes, "big", signed=False)
print(a)
#305419896
Комментарии:
1. но я хочу добиться такой же функциональности в nodejs