原码 反码 补码
主要内容
-
数据的常见分类
数据分类.png -
机器数和机器数的真值
- 在计算机中所有的数据都是一二进制保持的
- +3=0000 0011
- -3=1000 0011
- 在机器数中,使用最高位来表示数字的正负,1为负,0为正;
- 一个字长为8位;
- 机器数的真值就是机器数所对应的真正的数值
-
原码
- 符号位
- 正数:首位用0来表示
- 负数:首位用1来表示
- 有效位:真值的绝对值转化为二进制形式
- 将符号为和有效位拼接到一起
- 符号位
-
反码
- 正数:反码和原码相同;+3=0000 0011(原码)=0000 0011(反)
-
==负数:符号位不变;其余各位直接取反;二进制只有两种状态;【0,1】也就是0变1,一变0;==
反码图片.png
补码
正数:正数的原码反码补码全部相同;+3:0000 0011(原码)=0000 0011(反码)=0000 0011(补码)
-
负数:求得原码,再求反码,在最后一位加一;
-13补码例子.png -
为十么需要反码和补码
- 反码:在设计计算机的时候只设计了加法器,使用加法计算来表示减法;
- 补码:反码解决了没有减法器的问题,但是会出现正负相加为0的表示不唯一,使用补码进行修正;
- 正常计算都是使用补码进行计算
-
==补码转原码:==
- 正数:补码=反码=原码;
- ==负数:补码的补码;首位不变其余取反再加一==
-
反码转原码
- 正数:不变
- 负数:符号位不变,其余各位取反;