如何解决如何将位数组作为字符串转换为ArrayBuffer
假设我有一个由256个字符/字符串组成的数组,它们分别是“ 1”或“ 0”
类似
["1","1","0",...]
我需要将其放在ArrayBuffer中(单个位是SHA-256哈希)
用数组中的每个填充32字节ArrayBuffer的最简单方法是什么。
解决方法
您可以使用join将8位连接在一起,然后使用parseInt(以2作为基数)转换二进制数,然后将其放置在arrayBuffer中。
下面是一个例子。
//lets make some demo data.
const data = new Array(256).fill().map(m => Math.random() < 0.5 ? '1' : '0');
//convert data of '0','1' into ArrayBuffer
const buffer = new Uint8Array(32);
let bpos = 0;
for (let l = 0; l < data.length; l += 8) {
const b = data.slice(l,l + 8).join('');
buffer[bpos] = parseInt(b,2);
bpos += 1;
}
console.log(buffer);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。