符号幅度符号
符号幅度二进制格式是最简单的概念格式。在这种表示带符号数字的方法中,最高有效数字(MSD)具有额外的含义。
如果MSD为0,我们可以像对待任何普通的无符号整数一样评估数字。同时我们也将这个数字视为正数。
如果MSD为1,则表示数字为负。
其他位指示数字的大小(绝对值)。假设有4位字长,一些带符号的十进制数及其在SM表示法中的等效形式将在后面出现。
范围
从上表可以明显看出,如果字长为n位,则可以表示的数字范围是-(2n-1-1)到+(2n-1-1)。可以表示的字长和SM号范围的表如下所示。
请注意,位序列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符号通常不用于表示计算机内部的带符号数字。