📜  二进制数字表示(1)

📅  最后修改于: 2023-12-03 15:36:04.089000             🧑  作者: Mango

二进制数字表示

在计算机领域中,数字可以用不同的进制(比如二进制、八进制、十进制、十六进制)表示。其中,二进制是最基础、最常见的一种进制,也是计算机内部表示数字的方式。

什么是二进制?

二进制是一种只包含 0 和 1 两个数字的基数为 2 的数字系统,因此只需用两个符号就可以表示数字。

与十进制不同,二进制表示一个数时,每一位都是 2 的幂次方,幂的指数从右向左递增,第一位的指数为 0。例如,二进制数 1011 表示的数值为:

         1    0    1    1
(2 的 3 次方) (2 的 2 次方) (2 的 1 次方) (2 的 0 次方)
       = 8   +  0   +  2   +  1
       = 11
如何表示二进制数字

在编程中,我们通常用前缀“0b”或“0B”表示一个二进制数字,例如,0b1011 表示十进制数值 11。

binary_num = 0b1011  # 前缀为0b或0B表示二进制数
print(binary_num)    # 输出数字 11
如何将十进制转换为二进制

我们可以通过不停地除以 2 来将一个十进制数转换为二进制。具体来说,从右往左依次取得每位上的数字,直到商为 0。

例如,要将十进制数值 11 转换为二进制,可按以下步骤操作:

  • 11 ÷ 2 = 5 余 1
  • 5 ÷ 2 = 2 余 1
  • 2 ÷ 2 = 1 余 0
  • 1 ÷ 2 = 0 余 1

将余数从下往上排列即可得到二进制数值 1011。

在 Python 中,我们可以使用内置函数 bin() 来将一个十进制数转换为二进制,函数调用后返回一个字符串。

decimal_num = 11
binary_str = bin(decimal_num)  # bin()函数将10进制转换为2进制并返回一个字符串
print(binary_str)              # 输出字符串 '0b1011'
如何将二进制转换为十进制

我们可以按照上述介绍的方式,计算每位上的数字所代表的数值,然后将这些数值相加得到十进制数值。

例如,将二进制数值 1011 转换为十进制,可按以下步骤操作:

1 * 2^3 = 8
0 * 2^2 = 0
1 * 2^1 = 2
1 * 2^0 = 1
        ====
        11

在 Python 中,我们可以使用内置函数 int() 将一个二进制字符串转换为对应的十进制数值。

binary_str = '0b1011'
decimal_num = int(binary_str, 2)  # 第二个参数表示原数字的进制
print(decimal_num)                # 输出数字 11
注意事项

二进制数值通常比较长,因此表示时需要注意:

  • 在 Python 中,二进制数值通常以补码形式表示。因此,在处理负数时,二进制数值可能并不是直接的相反数。
  • 如果二进制数值前缀中的字母 B/b 被忽略,Python 会认为这是一个十进制数值的字符串。因此,如果需要表示一个二进制数字,务必使用小写字母 b。