【问题标题】:Why does readBigInt64BE return a number that is not equal to it's original hex value?为什么 readBigInt64BE 返回的数字不等于它的原始十六进制值?
【发布时间】:2020-07-29 02:20:19
【问题描述】:

我有以下缓冲区:

<Buffer bf 58 e6 c6 00 8f fd 32 84 0f d1 d4 bd 7f ba 95 fa f1 b0 af cf 2a 54 43 49 f5 0f 42 e6 c3 60 e2 a5 1b 05 61 30 3a 75 50 42 60 ff ff 2e 57 d7 1f 8a da ... 269 more bytes>

为什么下面不相等?

0xbf58e6c6008ffd32 //13788023997282124000
Number(buffer.readBigInt64BE(0)) // -4658720076427429000

不出所料,小端版本还返回另一个数字:

Number(buffer.readBigInt64LE(0)) // 3674250104503949300

【问题讨论】:

    标签: node.js hex buffer bigint


    【解决方案1】:

    0xbf58e6c6008ffd32 被认为是一个无符号整数(为什么,我不知道,我还需要弄清楚),所以我需要读取一个大的无符号 64 位整数(readBigUInt64BE 而不是 @987654323 @)。

    【讨论】:

      猜你喜欢
      • 2019-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 2014-03-31
      • 1970-01-01
      • 2021-06-04
      相关资源
      最近更新 更多