如何在nodejs中将字符串和整数转换为二进制?

How to convert string and integer to binary in nodejs?

我有以下问题。我有一个整数和一个字符串。两者都需要转换成二进制格式。对于整数,我找到了一个据我所知可行的解决方案。另一方面,字符串,我对它的了解不深。

据我所知,

String(16) 的意思类似于 Array<UInt8>,固定长度为 16。我说得对吗?如果是这样,是否有更好的方法在 NodeJS 中手动转换它们?

const myNumber = 2
const myString = 'MyString'

const myNumberInBinary = toUInt16(myNumber) // eg. 0000000000000101
const myStringinBinary = toString16(myString) // I honestly don't know

function toUInt16(number) {
    let binaryString = Number(number).toString(2)
    while (binaryString.length < 16) {
        binaryString = '0' + binaryString
    }
    return binaryString
}

// TODO: implement
function toString16(string) {
    ...
    return binaryString
}

此致

编辑: 感谢所有评论和回答。他们帮助我更好地理解了这个过程。我最终得到的解决方案是这个:

const bitString = "00000101"
const buffer = new Buffer.alloc(bitString.length / 8)

for (let i = 0; i < bitString.length; i++) {
  const value = bitString.substring(i * 8, (i * 8) + 8)
  buffer[i] = Number(value)        
}

fs.writeFileSync('my_file', buffer, 'binary')

再次感谢!

您应该遍历字符串并对每个字符执行此操作:

 let result = ""
 
 for (let i = 0; i < myString.length; i++) {
      result += myString[i].charCodeAt(0).toString(2) + " ";
  }