符号量,一个补码,两个补码

时间:2016-02-08 20:35:51

标签: binary numbers

所以我的教授有一个问题要列出所有可以用一个,二个补码和符号量表示的正数和负数:

使用4位数,例如(5)10 =(0101)2 写下所有正数和所有负数,可以用符号幅度,一个补码和二进制补码的四位表示。

现在,我不是在寻找澄清的答案。

  • 对于符号幅度,第一位表示数字的符号。 所以在提供的例子中,负五是-5 =(1101),那些是 补数=(0101)二进制补码(1010)
  • 符号幅度仅允许三位显示数字,一位显示 标志(从右到左的前导位。)这意味着 我们只有8种组合。这是0-7和-0-的数字 (-6)我们有16个人吗?所以0-15和-0 - ( - 15)

有人可以更好地解释这个问题吗?

1 个答案:

答案 0 :(得分:5)

以下是您提到的所有三种表现技巧的简要说明。

标志和幅度表示

在此表示中,我们可以表示任意位数(2的幂)的数字。表示中有两部分。标志和幅度,顾名思义。

如果我们想用n个位表示一个数字,

  • 第一位始终代表数字的符号。即0表示正数,1表示负数。
  • 其余位(n-1)表示二进制数的大小。

e.g。如果要使用8位表示+25和-25: (+25)10 = 0011001和(-25)10 = 10011001

由于二进制数系统只有2位数(0和1),因此一位数的补码是另一位数。即0的补码是1,反之亦然。

One's Complement

在此表示中,没有特定位来表示符号,但MSB(最高有效位)可用于确定数字的符号。即,如果数字为正,则MSB为0,如果数字为负,则MS为1。使用二进制数,并且还使用特定的位大小。 (例如8,16,32等位)。

  1. 如果数字是正数

    • 将数字转换为二进制
    • 将数字设置为特定位大小
  2. 如果数字为负

    • 将数字转换为二进制
    • 将数字设置为特定位大小
    • 获取该值的补充
  3. e.g。再次上一个例子

    • (+ 25)10
      • 将数字转换为二进制 - > (11001)2
      • 将数字设置为特定位大小 - > (0001 1001)
    • ( - 25)10
      • 将数字转换为二进制 - > (11001)2
      • 将数字设置为特定位大小 - > (0001 1001)
      • 获取该值的补充 - > (1110 0110)

    两个补充

    这种表现技术与One's Complement Representation非常相似。主要区别在于当数字为负时,在获得补码后,LSB(最低有效位)加1。

    e.g。让我们采用相同的例子

    • (+ 25)10
      • 将数字转换为二进制 - > (11001)2
      • 将数字设置为特定位大小 - > (0001 1001)
    • ( - 25)10
      • 将数字转换为二进制 - > (11001)2
      • 将数字设置为特定位大小 - > (0001 1001)
      • 获取该值的补充 - > (1110 0110)
      • 将1添加到LSB - > (1110 0110)+ 1 =(1110 0111)