如何在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) + " ";
}
我有以下问题。我有一个整数和一个字符串。两者都需要转换成二进制格式。对于整数,我找到了一个据我所知可行的解决方案。另一方面,字符串,我对它的了解不深。
据我所知,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) + " ";
}