从字符到二进制(添加左边0)

时间:2013-12-10 18:35:31

标签: javascript

您可以使用以下代码在JS中将char转换为二进制文件:

var txt = "H";
bits = txt.charCodeAt(0).toString(2); //bits=1001000

结果在数学上是正确的,但没有字面意思,我的意思是,左边有一个缺失的0,这也是正确的,但我想知道是否有办法让它考虑左边的零。

3 个答案:

答案 0 :(得分:2)

你需要一个字节?试试这个:

var txt = "H",
    bits = txt.charCodeAt(0).toString(2),
    aByte = new Array(9 - bits.length).join('0') + bits;

该代码段创建一个长度为缺失位+ 1的新数组,然后将新创建的数组转换为需要的零数量的字符串。 9是所需的“字节长度”+ 1。

但是,这是一种相对较慢的方法,如果您有时间关键任务,我建议您改为使用whilefor循环。

答案 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);