一、原码反码补码
负数补码快速转换为原码:
原: 1011 0110
反: 1100 1001
补: 1100 1010
当从低位向高位找到第一个‘1’时,这个“1”的左边,与反码相同,右边与,原码相同,
就可以把1100 1010分成两部分 -> 110010 和10 110010取反,而10不变,就得到1011 0110
溢出
运算结果超过了数的表示范围,
只有两个正数相加才会上溢出,只有两个负数相加才会下溢;
因为,如果一个正数和一个负数相加,结果一定大于负数,小于正数。在两数之间就不会产生溢出。
判断方法:
(1)一位符号位
(2)双符号位
符号位变为两位
正数00 负数11
上溢:
00 000 1111 + 00 111 1100 = 01 000 1011 01表示上溢
下溢:
11 1101 000 + 11 000 0100 = 10 110 1100 10表示下溢
(3)一位符号位+ 数据位判断