Давайте подумаем о следующей ситуации.
Подпрограмма Go создает массив байтов, в котором число Uint64 5577006791947779410
упаковывается в 8-байтовый код с обратным порядком байтов [77, 101, 130, 33, 7, 252, 253, 82]
.
В коде JavaScript я получаю эти байты как Uint8Array
. Мы знаем, что в настоящее время JavaScript не поддерживает Uint64 в качестве безопасного числового типа и не может выполнять побитовые операции над целыми числами размером более 32 бит, поэтому такие вещи, как buf[0] << 56
, никогда не будут работать.
Итак, каков процесс декодирования этих байтов непосредственно в числовую строку "5577006791947779410"
?
PS Я знаю, что множество библиотек библиотек для работы с большими целыми числами в JavaScript, но обычно они огромны и предоставляют множество математических операций, которые мне здесь не нужны. Я ищу простое современное прямое решение для только декодирования BE-упакованных байтов Uint64 и Int64 в числовую строку. У тебя есть что-нибудь на уме?