目录
一、无符号数如何表示和运算
主观原理:
无符号数就是在整个机器字长中没有符号位,全是数值位,比如,在8位机中 字长为8位的就是:D7~D0;D0~D7都是数值位,是要参与运算的;那么在16位机中 D15~D0也全都是数值位,也是要参与运算的。
无符号数范围:
n位无符号数表示范围:0~()
8位无符号数表示范围:0~255
16位无符号数表示范围:0~65535()
无符号数中的算术运算:
(1)无符号二进制加法
0+0=0,0+1=1,1+1=10(向高位在进一位)—缝二进一
例:计算二进制数10101010与01100010的和
(2)无符号二进制减法
0-0=0,1-1=0,1-0=1,0-1=1(向高位借1)—借一当二
例:计算二进制数1010和0101的差
(3)还有无符号二进制乘法和无符号二进制除法;乘法的运算规则“由左移被乘数与加法运算构成”,除法的运算规则“由右移被除数与减法运算构成”。就不一 一举例了。
无符号数中的逻辑运算:
逻辑运算分为“与运算、或运算、异或运算、非运算”。
(1)与运算
常用符号:“x”,“^”,"."
运算规则:两边运算的值都是1时结果才是1;否则为0
举例:
(2)或运算
常用符号:“+”,“V”
运算规则:两边运算的值只要有一个是1结果就为1,都是0的时候结果才是0。
举例:
(3)异或运算
常用符号:
运算规则:两边运算的值相同结果为0,不同结果为1
举例:
(4)非运算
运算规则:取反,1为0,0为1。
举例:
二、有符号数如何表示和运算
主观原理:
在有符号数是有“真值”和“机器码”这个概念的,真值就是数据实际的值,即带有正负符号的数如:-3,+1011B,+127等,机器码是在计算机内用二进制编码来表示,机器码还涉及到了 原码、反码、补码、移码这些概念。当然,有符号数在机器字长中的表示也会有所不同,如在8位机上最高位即D7为符号位,其他均为数值位;同样的在16位机上最高位D15为符号位,其他均为数值位;符号位在机器码的原、反、补上表现的比较突出,0表示为正,1表示为负,而正因为符号位的改变,原、反、补也就有了差距。
原码:
符号位:0正,1负
数值位:与真值的二进制形式一样
表示范围:8位(-127~+127)(-(~+()));16位(-32767~+32767)(-(~+()));n位(-(-1)~+())
8位举例:
[+0]原=0000 0000——(D7为0===正)
[-0]原=1000 0000——(D7为1===负)
[+5]原=0000 0101——(5在八进制中是101,剩下的自动补0)
反码:
符号位:0正,1负
数值位:正数不变和原码一样,负数是将数值位取反。
表示范围:和原码一样
8位举例:
[+0]反=0000 0000
[-0]反=11111111
[+5]反=00000101
[-5]反=11111010
补码:
符号位:0正,1负,参与运算
数值位:正数不变,负数是在反码的基础上末位+1
表示范围:8位:-128~+127;16位:-32768~+32767
8位举例:
[+5]补=00000101
[-5]补=11111011
三、溢出与进位
主观原理:
溢出是OF,OF主要表示在有符号数;进位是CF,CF主要表示在无符号数。
判定方法:
CF:看最高位的运算结果有没有进位,如果进位CF=1,否则CF=0
OF:在加法运算中,正数+正数=负数 或者 负数+负数=正数 OF=1,否则OF=0。在减法运算中,正数-负数=负数 或者 负数-正数=正数 OF=1,否则OF=0。