【嵌入式百科】002——原码、反码、补码

        书写时表示的数和机器中编码表示的数分别称为真值(无符号数)与机器数(有符号数)。常用的机器数表示有原码、反码、补码三种形式。

        以下解释基于八位二进制。

一、原码

        1. 原码表示法在数值前面增加了一位符号位(即最高位为符号位);正数该位为0,负数该位为(0有两种表示:+0和-0),其余位表示数值的大小。原码的取值范围为-127~127。

         如:+110(书写二进制为+1101110B)               其原码为:01101110B

                 -110(书写二进制为-1101110B)                其原码为:11101110B

二、反码

        1. 最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。反码的取值范围是-127~127。        

        2.  原码转换到反码:①正数的反码与原码相同 ②负数的反码为它的绝对值按位取反,符号位不变。

        如:【-110】,原码为11101110B,反码为:10010001B

三、补码

        1. 最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。补码的取值范围位-128~127。

        2. 原码转换到补码:①正数的原码与补码相同 ②负数的补码为将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1

        如:【-110】,原码为11101110B,补码为:10010010B

四、其它

    一些特殊点数的原码,反码,补码

+0 -0 +1 -1 127 -127 -128
原码 0000 0000 1000 0000 0000 0001 1000 0001 0111 1111 1111 1111
反码 0000 0000 1111 1111 0000 0001 1111 1110 0111 1111 1000 0000
补码 0000 0000 0000 0000 0000 0001 1111 1111 0111 1111 1000 0001 1000 0000

你可能感兴趣的:(嵌入式百科,单片机,嵌入式硬件,科普)