将十进制转换为二进制
二进制数 是以 2 为基数表示的数字,与以 10 为基数的传统十进制数相反
计算器如何工作
在 JavaScript 中将十进制数转换为二进制数很容易。 例如 let x = 42
创建一个新变量 x
包含以 10 为基数的数字 42
,JavaScript 数字有一个 toString()
方法 需要一个 radix
范围。 调用 x.toString(2)
告诉 JavaScript 进行转换 x
到包含二进制表示的字符串 42
。
let x = 42;
x.toString(2); // '101010'
toString()
方法还处理非整数和负数。 例如:
x = 3.14;
x.toString(2); // '11.001000111101011100001010001111010111000010100011111'
x = -7;
x.string(2); // '-111'
心算
你如何快速转换 7
到 111
在你的脑海里? 这需要一些练习才能变得简单,但这里是 的过程 转换正整数 v
到二进制字符串:
- 以空字符串开头
- 拿
v
模 2 并将其添加到字符串的末尾 - 重复
Math.floor(v / 2)
直到你到达 0 或 1
下面是实现上述过程的 JavaScript 函数:
function toBinary(v, str) {
if (!Number.isSafeInteger(v) || v < 0) {
throw new Error('v must be a non-negative integer');
}
if (v === 1) {
return '1';
}
if (v === 0) {
return '0';
}
return toBinary(Math.floor(v / 2)) + (v % 2);
}
以下是 42 的过程:
42 % 2 === 0
, '0'21 % 2 === 1
, '10'10 % 2 === 0
, '010'5 % 2 === 1
, '1010'2 % 2 === 0
, '01010'1
, '101010'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: 如何判断一个变量是否是数组?
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论