我真的会醉,每次考试复习科目的时候都会多少涉及一点原码和补码的知识,每次就那么点玩意儿,每次都记不住,都得重新复习,今天我就整理一个,我以后不会的话就回来翻这个,势必要给他搞会!
一、基础概念
1、原码概念
数字用二进制表示,前第一位是符号位,0是正,1是负的。
例子:-7是4+2+1,所以原码是1111
(超过7的话就应该是八位了)
2、补码概念
原码的计算码
计算的时候用用补码,看大小用原码
3、反码
二、原码转换为补码
正数,原码和补码相同
负数原码转补码,符号位不变,其余位按位取反,然后整体加1
例子:-7原码是1111,要换成补码就是先符号位1不变,其余位取反得到1000,再加1,得到补码:1001
三、补码转换为原码
符号位为0,则是正数,补码就是原码;
符号位为1,则是负数,先减1,再符号位不变剩下位取反,或者先符号位不变按位取反再整体加1
例子:-7,补码1001,先减1就是1000,符号位不变取反就是1111
或者按照第二个方法,符号位不变,取反,就是1110,再加一就是1111
两个方法都OK的。
四、原码转为反码
正数的反码与原码一致;
负数的反码是最高位(符号位)不变,剩下的按位取反。
(和补码比没有加1的动作)
那怎么往回返也是很像补码的,我就不多赘述了。