NodeJS缓冲区-读取小端缓冲区

7

我有一个256位的数字,但是它是以小端模式书写的:

<Buffer 21 a2 bc 03 6d 18 2f 11 f5 5a bd 5c b4 32 a2 7b 22 79 7e 53 9b cb 44 5b 0e 00 00 00 00 00 00 00>

我该如何将其正确地以十六进制值打印出来?
buf.toString('hex')

buk.toString('hex').split("").reverse().join(""))的结果是0x00000000000000e0b544bcb935e79722b72a234bc5dba55f11f281d630cb2a12,而不是0x000000000000000e5b44cb9b537e79227ba232b45cbd5af5112f186d03bca221

2个回答

11
你可以使用match代替split,以获得一个由两个字符组成的数组。然后您可以反转数组并将其连接起来。
buf.toString('hex').match(/.{2}/g).reverse().join("")

1
你可以用更短的等价形式/../替换/.{2}/。除此之外,答案很棒。 - Jakub Fedyczak

3

实际上Buffer对象支持reverse()方法,在转换为十六进制字符串之前使用该方法可能更好。

buf.reverse().toString('hex')

2
运行起来比其他解决方案快得多。 - Martin Franz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接