二进制 原码 补码 反码
模
“模”是指一个计量系统的计数范围。
例:假如下午六点你发现手表停在了上午十点,现在要将手表拨到六点你有几种办法?
一:顺时针拨8位
二:逆时针拨4位
由此得
10 + 8 = 18
18 - 12 = 6
10 - 4 = 6
“模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。任何有模的计量器,均可化减法为加法运算。
同时计算器中只有加法器没有减法器,所以可以通过加法来代替减法运算。
在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替。对“模”而言,8和4互为补数。实际上以12模的系统中,11和1,10和2,9和3,7和5,6和6都有这个特性。共同的特点是两者相加等于模。
二级制模
由以上例子不难看出时钟的模是12一个周期,那么二级制的模就是2。
原码
是一种计算机中对数字的二进制定点表示方法,其再二级制基础上增加了一个符号位。
简单的说就是一个有符号的二级制数。
反码
反码是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。
正数的反码与其原码相同;
负数的反码是对其原码逐位取反,但符号位除外。
补码
由上文的概念可以得出补码即与原码相加为一个模的值(或者说余数为0)。
注:因此负数的补码是其反码+1.
补码的出现可以将负数的减法转换为正数的加法。正式补码的重要性介绍下补码的特性:
1、一个负整数(或原码)与其补数(或补码)相加,和为模。
2、对一个整数的补码再求补码,等于该整数自身。
3、补码的正零与负零表示方法相同。
运算规则
对二进制数来说,先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1 有方法。
正数,原码、反码、补码数值位完全相同;
当真值为负时,原码的数值位保持原样,反码的数值位是原码数值位的各位取反,补码则是反码的最低位加一。
注意符号位不变。
减负数等于加负数的补码。