原码,反码,补码及其运算
1)简述
原码: 用来转换对应进制.
反码: 二进制码0变1,1变0叫做反码,反码用于原码补码之间的转换.(符号位不变)。
补码: 用来做数据的存储运算. 补码提出的根源是让计算机底层的实现减法操作(可以表达出一个数的正负)。
2)运算规则
(原码 反码 补码之间的转换 , 符号位不要动)
正数: 原码 = 反码 = 补码
负数: 原码 = 补码取反加1 给补码求原码
负数: 补码 = 原码取反加1 给原码求补码
求12 +(- 15) = ?
补码用来做数据的存储运算,因此先求12和-15的补码
12的补码(=反码=原码):0000 1100(高位为0,表示正数)
-15的原码: 1000 1111 (高位为1,表示负数,转换为10进制时,高位的1不用进行换算)
反码: 1111 0000 (原码取反)
补码: 1111 0001 (反码加1)
补码做相加运算
12的补码: 0000 1100
-15的补码: 1111 0001
-------------
结果(补码): 1111 1101
补码再转换为原码(即补码的补码,同样做取反加1换算)
补码: 1111 1101(高位为1,表示负数,进行补码反码原码换算时是不变的)
反码: 1000 0010(补码取反)
原码: 1000 0011(反码加1)
10进制: -3