gpt4 book ai didi

javascript - Node js 缓冲区翻转二进制位

转载 作者:行者123 更新时间:2023-11-29 21:31:20 25 4
gpt4 key购买 nike

我正在 nodejs 中进行一些解码,并且有一个缓冲区:

59 19 F2 92  8C 88 88 88  89 88 EB 89  88 88 A1 8A 
88 88 88 88 89 88 A8 CD 88 88 88 DB 88 88 88 DC
88 88 88 A5 88 88 88 BD 88 88 88 B2 88 88 88 B8
88 88 88 B8 88 88 88 8A 88 89 89 8D 88 89 8D 8E
88 89 89 8F 88 89 89 80 88 8C 87 88 88 88 81 88
89 8B 82 88 8C 9C 88 88 88 85 88 8C 88 88 88 88
87 88 89 8A 99 88 89 88 9B 88 8C 8D 88 88 88 9C
88 8C 8D 88 88 88 9D 88 8C 8D 88 88 88 9E 88 8C
A0 88 88 88 9F 88 94 DA 88 88 88 ED 88 88 88 FE
88 88 88 ED 88 88 88 FA 88 88 88 FB 88 88 88 ED
88 88 88 90 88 90 C4 88 88 88 E1 88 88 88 EF 88
88 88 E0 88 88 88 FC 88 88 88 FB 88 88 88 91 88
AC C4 88 88 88 ED 88 88 88 EE 88 88 88 FC 88 88
88 A8 88 88 88 DC 88 88 88 FD 88 88 88 FA 88 88
88 E6 88 88 88 92 88 A0 DA 88 88 88 E1 88 88 88
EF 88 88 88 E0 88 88 88 FC 88 88 88 A8 88 88 88

需求文档说它是对字节与 0x77 进行异或编码,然后取互补字节。

所以

59 XOR 77 => 2E (00101110) => D1 (11010001)
19 XOR 77 => 6E (01101110) => 91 (10010001)

在 Node 中执行此操作并以包含所需字节的缓冲区结束的最佳方法是什么?

最佳答案

你可以试试这个:

let buf = new Buffer([ 0x59, 0x19, 0xF2, 0x92 ]); // etc.
let converted = new Buffer(
Array.from(buf)
.map(x => x ^ 0x77)
.map(x => ~x)
);

// output: <Buffer d1 91 7a 1a>

这可能不是最快的方式(Array.from 而不是一个一个地遍历缓冲区可能更慢,我选择了 2 个单独的为了可读性而不仅仅是 1 个 map ),但它至少应该让你开始。

关于javascript - Node js 缓冲区翻转二进制位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36367120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com