📜  数字逻辑中的二进制表示

📅  最后修改于: 2021-09-16 10:48:15             🧑  作者: Mango

二进制是一种基数为 2 的数字系统,它使用两种状态 0 和 1 来表示一个数字。我们也可以称其为真状态和假状态。二进制数的构建方式与我们构建普通十进制数的方式相同。

例如,一个十进制数 45 可以表示为 4*10^1+5*10^0 = 40+5

现在在二进制中 45 表示为 101101。因为我们在十进制数中有 10 的幂,类似地,二进制数中有 2 的幂。因此,二进制中的 101101 的 45 可以表示为:

2^0*1+2^1*0+2^2*1+2^3*1+2^4*0+2^5*1 = 45 

二进制数从左到右遍历。

符号和幅度表示 –
有多种表示负整数的方法。其中一种方法是符号幅度。本系统使用一位来表示符号。数学数字通常由符号和值组成。符号表示数字是正数(+)还是负数(-),而值表示数字的大小。

例如 13、+256 或 -574。以这种方式呈现数字称为符号幅度表示,因为最左边的数字可用于表示符号,其余数字可用于表示数字的幅度或值。

符号幅度表示法是表示正数和负数的最简单也是最常见的方法之一。因此,只需改变相应正数的符号即可获得负数,例如 +2 和 -2、+10 和 -10 等。类似地,在二进制数前面加上 1 是负数,而 0 则使它积极。

例如,如果考虑二进制数的 6 位并且最左边的数字表示符号,则 0101101 表示 +45,1101101 表示 -45。

但是符号幅度方法的一个问题是它可能导致两个不同的位模式具有相同的二进制值。例如,+0 和 -0 分别是 0000 和 1000 作为有符号的 4 位二进制数。因此,使用这种方法可以有两种零表示,一个是正零 0000,另一个是负零 1000,这会给计算机和数字系统带来很大的麻烦。

用于表示有符号幅度数的 2 个补码符号是:

1. 一个人的补语——
One’s Complement 是一种可用于在有符号二进制数系统中表示负二进制数的方法。在一个人的补码中,正数和以前一样保持不变。

然而,负数是通过取无符号正数的补码来表示的。由于正数始终以 0 开头,因此补码始终以 1 开头以表示负数。

负二进制数的补码是其正数的补码,因此要取二进制数的补码,我们需要做的就是从该数字中减去等于数字中存在的位数的 1。这也可以通过交换数字的数字来实现。因此,1 的补码是 0,反之亦然。

例如 1010100 的补码:

1111111
-1010100
0101011 

也可以通过交换二进制数的数字来获得数字的补码

2. 补码——
补码是另一种类似于补码形式的方法,我们可以用它来表示有符号二进制数系统中的负二进制数。在二进制补码中,正数与之前的无符号二进制数完全相同。然而,负数由二进制数表示,当与相应的正数相加时,结果为零。

在二进制补码表示中,负数是其正数的 2 的补码。如果两个数相减是 X – Y 那么它可以表示为 X +(Y 的 2 的补码)。

二进制补码是二进制数的补码+1

二进制补码相对于前一个补码的主要优点是不存在双零问题,并且生成有符号二进制数的二进制补码要容易得多。当数字以二进制补码格式表示时,二进制补码算术运算相对容易执行。

例如表示-27
二进制中的 27 是:00011011

11111111
-00011011
11100100 <-- 1's Complement
      +1
11100101 <-- The 2's Complement 

以上 2 是实际上可能太长的格式。因此使用实数表示。

实数表示 –
目标是使用 形式用二进制表示带有小数点的数字。 IEEE 754 标准定义了如何对实数进行编码。该标准提供了一种使用 32 位(以及 64 位)对数字进行编码的方法,并定义了三个组成部分:

  1. 加号/减号由一位表示,即权重最高的位(最左侧)。
  2. 指数在符号后立即使用 8 位(64 位表示中的 11 位)进行编码。
  3. 尾数(小数点后的位)和剩余的 23 位(64 位表示中的 52 位)。