首页 理论教育单片机基础:带符号数表示

单片机基础:带符号数表示

【摘要】:由于计算机只能识别0和1,因此用一个二进制数的最高位作为符号位来表示这个数的正负。符号位的规定:用“0”表示正,用“1”表示负。当然不同位数所表示数的范围不同。2.数的码制机器数有原码、反码和补码3种表示方法。一种数的多种表示方法可简化运算,提高运算速度。原码正数的符号位用0表示,负数的符号位用1表示,数值部分用真值的绝对值来表示的二进制机器数称为原码,用[X]原表示,设X为整数。如时钟的模为12。

1.机器数及真值

计算机在数的运算中,不可避免地会遇到正数和负数。由于计算机只能识别0和1,因此用一个二进制数的最高位作为符号位来表示这个数的正负。符号位的规定:用“0”表示正,用“1”表示负。当然不同位数所表示数的范围不同。

如X=-1101011B,则表示为11101011B;Y=+1101010B,则表示为01101010B。

2.数的码制

机器数有原码、反码和补码3种表示方法。一种数的多种表示方法可简化运算,提高运算速度。

(1)原码

正数的符号位用0表示,负数的符号位用1表示,数值部分用真值的绝对值来表示的二进制机器数称为原码,用[X]表示,设X为整数。

若X=+Xn-2Xn-3…X1X0,则[X]=0Xn-2Xn-3…X1X0=X;

若X=-Xn-2Xn-3…X1X0,则[X]=1Xn-2Xn-3…X1X0=2n-1+X。

其中,X为n-1位二进制数,Xn-2,Xn-3,…,X1,X0为二进制数0或1。例如+125和-125在计算机中(设机器数的位数是8)其原码可分别表示为

可见,真值X与原码[X]的关系为

注意:8位二进制原码能表示的范围是-127~+127;数0的原码不唯一,[+0]=00000000B,而[-0]=10000000B。

(2)反码(www.chuimin.cn)

正数的反码等于该数的原码,负数的反码由该正数的原码按位取反得到(除符号位外)。反码用[X]表示。

【例1-4】求+104和-104的反码。

【解】X=+104,则[X]=[X]=01101000B;

(3)补码

“模”是指一个计量系统的计数量程。如时钟的模为12。任何有模的计量器,均可化减法为加法运算。如以时钟为例,设当前时钟指向11点,而准确时间为7点,调整时间的方法有两种,一种是时钟倒拨4小时,即11-4=7;另一种是时钟正拨8小时,即11+8=12+7=7。由此可见,在以12为模的系统中,加8和减4的效果是一样的,即-4=+8(mod 12)。

对于n位计算机来说,数X的补码定义为

即正数的补码就是它本身,负数的补码是真值与模数相加。

【例1-5】对8位计算机,求+75和-75的补码。

【解】[+75]=01001011B

[-75]=10000000B-01001011B=10110101B

负数补码的求法:用原码求反码,再在数值末位加1,即[X]=[X]+1。用补码定义求负数补码的过程中要做减法运算,一般该法不用。

8位二进制补码能表示的范围为-128~+127,若超过此范围则为溢出。