符号幅度符号

符号幅度二进制格式是最简单的概念格式。在这种表示带符号数字的方法中,最高有效数字(MSD)具有额外的含义。

  • 如果MSD为0,我们可以像对待任何普通的无符号整数一样评估数字。同时我们也将这个数字视为正数。

  • 如果MSD为1,则表示数字为负。

其他位指示数字的大小(绝对值)。假设有4位字长,一些带符号的十进制数及其在SM表示法中的等效形式将在后面出现。

签名十进制
符号幅度
     +6
   0110
     -6
   1110
     +0
   0000
     -0
   1000
     +7
   0111
     -7
   1111

范围

从上表可以明显看出,如果字长为n位,则可以表示的数字范围是-(2 n-1 -1)到+(2 n-1 -1)。可以表示的字长和SM号范围的表如下所示。

字数
SM号范围
4
-7至+7
8
-127至+127
16
-32767至+32767
32
-2147483647至+2147483647

请注意,位序列1101对应于无符号数字13,以及SM表示法中的数字–5。它的值仅取决于用户或程序员解释位序列的方式。

加成

数字表示在计算机内部,目的是使用该数字执行一些计算。计算机中最基本的算术运算是加法运算。这就是为什么计算机也可以称为加法器的原因。

当两个具有相同符号的数字相加时,将其值相加并保留公共符号。 

例子1

使用计算机添加数字(+5)和(+3)。假定数字使用4位SM表示法表示。

             111  <- carry generated during addition
             0101 <- (+5) First Number
           + 0011 <- (+3) Second Number
             1000 <- (+8) Sum

让我们再举两个带有不同符号的数字的例子。

例子2

使用计算机将数字(-4)和(+2)相加。假定数字使用4位SM表示法表示。

              000 <- carry generated during addition              1100 <- (-4) First number           +  0010 <-(+2) Second Number              1110 <- (-2) Sum

在这里,计算机给出了-6 = 1110的错误答案,而不是给出了-2 = 1010的正确答案。

缺点

  • 0有两种表示法(0000和1000),这在计算机要测试0结果时非常不便。

  • 计算机不方便进行算术运算。

因此,由于上述歧义,SM符号通常不用于表示计算机内部的带符号数字。