将十进制转换为二进制

发布于 2023-02-08 19:59:02 字数 1834 浏览 137 评论 0

二进制数 是以 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'

心算

你如何快速转换 7111 在你的脑海里? 这需要一些练习才能变得简单,但这里是 的过程 转换正整数 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 的过程:

  1. 42 % 2 === 0, '0'
  2. 21 % 2 === 1, '10'
  3. 10 % 2 === 0, '010'
  4. 5 % 2 === 1, '1010'
  5. 2 % 2 === 0, '01010'
  6. 1, '101010'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

贵在坚持

暂无简介

文章
评论
28 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文