知识点:有符号数的表示及计算
机器数:数在机器中的表示,即把一个数及其符号位都数字化。

机器数可用不同的码制(编码)来表示,常用的有原码、反码和补码。
1)三种编码的最高位都是表示符号位。
S=0,真值为正数,其余位为真值;
S=1,真值为负数,须按一定规律求出真值。
2)对于正数,三种编码是一样的,即[X]原=[X]反=[X]补;对于负数,三种编码不同。
原码——正数的原码为本身;负数的原码最高位符号位为"1"
反码——正数的反码为原码;负数的反码为逐位取反(符号位除外)
补码——正数的补码为原码;负数的补码为其反码加1
3)当计算机字长N=8时,机器所能表示的
原码范围:-127 ~ +127,-2n-1+1 ~ 2n-1+1
反码范围:-127 ~ +127,-2n-1+1 ~ 2n-1+1
补码范围:-128 ~ +127,-2n-1 ~ 2n-1+1 (其中,定义 10000000B为-128的补码)

带符号数的运算(补码运算)
通过引进补码,可将减法运算转换为加法运算。
即 [X+Y]补=[X]补+[Y]补 [X-Y]补=[X+(-Y)]补=[X]补+[-Y]补

强调:运算完后要先判断结果的正负,结果若为负数,则需进行变补运算才能得到结果的真值。即[XY]原=[[X
Y]补] 补
补码计算的溢出
产生原因:运算结果超出n位补码表示的数据范围
判断方法:双高位判别法

例题分析


