原码、反码、补码、和位非的关系

来源:互联网 发布:川农在线网络教育平台 编辑:程序博客网 时间:2024/05/29 11:58

原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。(:原码不能直接参与数学运算)。

反码(ones' complement):反码是数值存储的一种,多应用于系统环境设置,在计算机内,定点数有3种表示法:原码、反码和补码。

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码( complement):在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。

         1.正整数的补码是其二进制表示,与原码相同

         2.求负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1

位非运算:(为正数时,位非为补码+1,正数的补码就是原码,负数时,为补码取反。)

例:

~5的位非为-6

              0000  0101 ================================ 5  的二进制码(正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。)

              1000   0110 ===================================补码+1

~(-5)的位非为4

                   1111   1011   ================================= 补码(以补码形式存储)

                   0000   0100   ================================= 反码