缺少位 - 文本到二进制 JS
Missing bits - Text-to-Binary JS
我正在处理别人编写的代码。在检查代码时,我注意到在转换过程中删除了 0
位。这是代码示例:
user_input = 'a'
input_bits = '';
for (let i = 0; i < user_input.length; i++) {
input_bits += user_input.charCodeAt(i).toString(2);
}
当我运行这段代码时input_bits
中的值是:1100001
。我使用了在线转换器,结果是:01100001
。我认为在我的情况下丢失的位很重要,因为如果我想转换另一个字符串,例如 ab
我的代码版本将给出 11000011100010
并且预期值应该是 0110000101100010
.
我该如何解决。我在循环中尝试了一个 if
语句来附加缺失的 0
位,直到长度为 8,但这会导致更奇怪的结果。
提前致谢。
只是 padStart
零到长度 8:
user_input = 'a'
input_bits = '';
for (let i = 0; i < user_input.length; i++) {
input_bits += user_input.charCodeAt(i).toString(2).padStart(8, "0");
}
console.log(input_bits)
我正在处理别人编写的代码。在检查代码时,我注意到在转换过程中删除了 0
位。这是代码示例:
user_input = 'a'
input_bits = '';
for (let i = 0; i < user_input.length; i++) {
input_bits += user_input.charCodeAt(i).toString(2);
}
当我运行这段代码时input_bits
中的值是:1100001
。我使用了在线转换器,结果是:01100001
。我认为在我的情况下丢失的位很重要,因为如果我想转换另一个字符串,例如 ab
我的代码版本将给出 11000011100010
并且预期值应该是 0110000101100010
.
我该如何解决。我在循环中尝试了一个 if
语句来附加缺失的 0
位,直到长度为 8,但这会导致更奇怪的结果。
提前致谢。
只是 padStart
零到长度 8:
user_input = 'a'
input_bits = '';
for (let i = 0; i < user_input.length; i++) {
input_bits += user_input.charCodeAt(i).toString(2).padStart(8, "0");
}
console.log(input_bits)