(四)、原码、反码、补码、移码

机器字长为n,最高位为符号位,则剩余的n-1位用来表示数值,其最大值是这n-1位都为1,也就是2的n-1次-1。

二进制数据在计算机系统中的表示方法是最基本的专业知识。补码本身是带符号位的,补码表示的数字中0是唯一的,不像原码有+0和-0之分,也就意味着位n二进制编码可以表示2个不同的数。

设机器字长为n(采用n个二进制位表示数据),最高位是符号位,0表示正号,1表示负号。
原码表示方式下,除符号位外,n-1位表示数值的绝对值。因此,n为8时,[+0]原=0000000,[-0]原=1000000。
正数反码与原码相同负数反码则是其绝对值按位求反。n为8时,数值0的反码表示有两种形式:[+0]反=00000000,[-0]反=111111111
正数补码与其原码和反码相同负数补码则等于其反码的末尾加1。在补码表示中,0有唯一的编码:[+0]原=0000000,[-0]原=0000000。
移码表示法是在数X上增加一个偏移量来定义的,常用于表示浮点数中的阶码。机器字长为n时,在偏移量为2的n-1次下,只要将补码的符号位取反便可获得相应的移码表不。

算术移位时,对于负数.其符号位可能需要特殊处理,逻辑移位中没有符号的概念,只是二进制位序列。
算术左移等同于乘以2的操作。