数据的表示 —— 原/反/补/移码
数码:数码(digital)系统,又称为数字系统,是使用离散(即不连续的)的0或1来进行信息的输入,处理,传输、存贮等处理的系统。相对的非数码(模拟信号)系统使用连续的数值代表信息。虽然数码的表示方法是分离的,但其代表的信息可以是离散的(例如数字、字母等。),或者连续(例如声音、图像和连续系统的其它测量等。)
- 计算机中的符号有三种表示方法,即原码,反码,补码。三种表示方法均有符号位和数值位两部分组成
原码: 最高位是符号位,其余低位表示数值的绝对值
- 原码是一种计算机中对数字的二进制定点表示方法,原码表示法在数值前面增加了一位符号位,:正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
- 反码通常是用来由原码求补码,或者由补码求原码的过渡码,原反码的 +0 相同,都为 00000000 而 -0 原码为 10000000 反码为 11111111。反码和原码在整数时一样,负数时,反码就是原码除符号位外,其他位按位取反
- 在计算机系统中,数值一律用补码来表示和存储,原因在于使用补码可以将符号位和数值域统一处理,同时加法和减法也可以统一处理。 补码和原码相互 转换,其运算过程是相同的。
- 原码求补码:
- 正整数的补码是其二进制表示,与原码相同
- 负整数的补码,将其原码除符号位外的所有位取反后加1
- 0 的补码是唯一的 00000000
- 补码求原码
- 如果补码的符号位为0 ,表示是一个正数,其原码就是补码
- 如果补码的符号位为1,表示是一个负数,那么求给定这个补码的补码就是要求的原码,出符号位其余按位取反再加1
- 原码求补码:
- 移码(又叫增码或偏置码)通常用于表示浮点数的阶码,其表示形式与补码相似,只是其符号位用“1”表示正数,用“0”表示负数,数值部分与补码相同。
定点整数
当n=8,也就是一共8个数位时:
原码:
定点小数
当n=8时,也就是一共8个数位时: