Javascript 以bits格式将真值数组保存到文件

Javascript 以bits格式将真值数组保存到文件,javascript,Javascript,如何将真值数组保存为bits格式的文件 const symbolSize = 8; const bits = [true,true,false,false,true,true]; const byteArray = new window[`Uint${symbolSize}Array`]([/* `bits` here, */21, 31]); const blob = new Blob([byteArray], {type: "application/octet-stream"}); con

如何将真值数组保存为bits格式的文件

const symbolSize = 8;
const bits = [true,true,false,false,true,true];
const byteArray = new window[`Uint${symbolSize}Array`]([/* `bits` here, */21, 31]);
const blob = new Blob([byteArray], {type: "application/octet-stream"});

const binFileURL = window.URL.createObjectURL(blob);

这里有一个你可以使用的函数。如果
长度
不是倍数8,则可选的
padLsd
参数确定如何处理数组中的最后位

输入数组
bools
仅要求严格包含
true
false
,但如果您不希望有此要求,可以将
const bits
改为
bools.map(Boolean).map(Number)

函数byteArrayFromBits(bools,padLsd=false){
每个元素的常量位=8
常数pad=padLsd?'padEnd':'padStart'
const bits=bools.map(Number)//强制布尔值为0和1
常量字节=位。减少((数组、位、索引、位)=>{
if(每个元素的索引%BITS\u==0){
const bitString=bits.slice(索引,索引+每个元素的位)。连接(“”)
常量字节=位字符串.length<每个元素的位
?位字符串[pad](每个元素的位,'0')
:位字符串
array.push(parseInt(字节,2))
}
返回数组
}, [])
返回Uint8Array.from(字节)
}
常量位=[真、真、假、假、真、真]
常量byteArrayLSD=byteArrayFromBits(位)
常量byteArrayMSD=byteArrayFromBits(位,真)
console.log(
byteArrayLSD[0]。toString(2),
String.fromCharCode(…byteArrayLSD)
)
console.log(
byteArrayMSD[0]。toString(2),
String.fromCharCode(…byteArrayMSD)

)
21、31的目标是什么?这里的最终目标是什么?()@PatrickRoberts事实上,这是不必要的@matmo的目标是找到一种如何将单个位保存到文件中的方法。我假设它必须至少放在一个字节中,否则就不可能了。事实上,我想要任何长度的单比特字符串。我只是为了将来做实验的一部分。我只是为了将来做实验的一部分。这不是现在直接需要的。