您可以使用以下代码在JS中将char转换为二进制文件:
var txt = "H";
bits = txt.charCodeAt(0).toString(2); //bits=1001000
结果在数学上是正确的,但没有字面意思,我的意思是,左边有一个缺失的0,这也是正确的,但我想知道是否有办法让它考虑左边的零。
答案 0 :(得分:2)
你需要一个字节?试试这个:
var txt = "H",
bits = txt.charCodeAt(0).toString(2),
aByte = new Array(9 - bits.length).join('0') + bits;
该代码段创建一个长度为缺失位+ 1的新数组,然后将新创建的数组转换为需要的零数量的字符串。 9
是所需的“字节长度”+ 1。
但是,这是一种相对较慢的方法,如果您有时间关键任务,我建议您改为使用while
或for
循环。
答案 1 :(得分:0)
charCodeAt()
返回一个字符的代码,这是一个通用数字。
数字本身没有任何类型的优先对齐。
按照惯例,打印的数字没有任何前导零。
实际上,charCodeAt()
会返回unicode字符代码,
通常可以存储超过8位。
因此这种行为是正确的。
答案 2 :(得分:0)
试试这个
var bits = txt.charCodeAt(0).toString(2);
var padding = 8 - bits.length;
res = [];
res.push(new Array(padding + 1).join('0')+ bits);