JavaScript 中的二进制数

2025 年 3 月 3 日 | 阅读 4 分钟

二进制数是具有基数(或称为根数)为二的数值系统。这意味着所有值都仅由数字 0 和 1 表示。二进制数字(binary digit)是二进制整数中每个数字的缩写,称为“位”(bit)。与我们日常使用的十进制系统类似,二进制是一种位置计数系统,它使用二的幂而不是十的幂。

在计算机科学中,二进制数使用 0 和 1 这两个数字来编码信息。由于很容易构建只有两种稳定状态的电子电路,即高电压(通常表示为 1)和低电压(通常表示为 0),因此该系统对于所有现代计算机的运行都至关重要。

以下是关于二进制数的一些重要细节:

  • 作为一个基数为 2 的数字系统,二进制数根据每个数字的位置和基数 2 来确定该数字的值。最右边的数字表示 1 (2^0),紧邻其左边的数字表示 2 (2^1),依此类推。
  • 二进制数字在计算机上用于表示多种数据类型,包括文本、图像、数字甚至软件。每条数据都由一串 1 和 0 组成。
  • 位(bit)这个缩写代表任何一个二进制数字。单个位只能存储两个值:0 和 1。
  • 位组:八位一组用于表示更多样化的值,有时也称为字节(byte)。

计算机以二进制数字为基础来处理信息。即使对于人类来说可能不如十进制直观,但对于任何对计算机科学或数字设备运行感兴趣的人来说,理解二进制的概念至关重要。

下面是一个示例,说明如何在二进制数系统中计数。下表显示了十进制数 1 到 10 的二进制表示。

十进制数二进制表示
10000
20001
30010
40011
50100
60101
70110
80111
91000
101010

JavaScript 中的二进制

在 JavaScript 中,默认情况下,如果我们给变量赋一个数字字面量,它会被视为十进制数(基数 10)。

代码

在上面的示例中,a 包含十进制数 10。它不是 2 的二进制等价物。在 ES5 中,没有方法可以表示二进制数。从 ES6 开始,要指定一个二进制数,必须在其前面加上一个前导零,后面跟着一个小写或大写的字母“B”。

代码

JavaScript 引擎在看到 0b 或 0B 前缀时,会将该数字视为二进制。

如果在 0b 或 0B 前缀后面使用 0 或 1 以外的数字,则会出现语法错误(Syntax Error)。

代码

数制转换

存在各种数制,即十六进制、十进制、八进制和二进制。这些数制中的每一种在特定任务中都很有用。这些数字之间的相互转换至关重要。在本节中,我们将讨论二进制和十进制之间的相互转换。

十进制转二进制

要将十进制数转换为二进制,我们不断地将该十进制值除以二并记录余数。将余数按相反的顺序读取即可得到二进制表示。

算法

25 ÷ 2 = 12 余 1

12 ÷ 2 = 6 余 0

6 ÷ 2 = 3 余 0

3 ÷ 2 = 1 余 1

1 ÷ 2 = 0 余 1

按相反的顺序读取余数,我们得到二进制表示:11001。

除此之外,我们还将展示一个将十进制数转换为二进制的 JavaScript 程序。

代码 1:使用 toString() 方法

输出

101

代码 2:使用位运算

输出

 

输出

101

结论

总之,本文涵盖了二进制数在通用数制和计算机科学中的重要性。它描述了二进制如何使用 0 和 1 这两个数字来表示值,这对于编码数字数据至关重要。它还涵盖了位运算以及 toString() 等用于将十进制整数转换为二进制的工具。


下一主题Remix-javascript