《原码补码和反码的具体定义》由会员分享,可在线阅读,更多相关《原码补码和反码的具体定义(4页珍藏版)》请在金锄头文库上搜索。
1、原码补码和反码的具体定义数在计算机中是以二进制形式表示的。 数分为有符号数和无符号数。 原码、反码、补码都是有符号定点数的表示方法。 一个有符号定点数的最高位为符号位,0 是正,1 是副。 以下都以 8 位整数为例, 原码就是这个数本身的二进制形式。 例如0000001 就是+11000001 就是-1 正数的反码和补码都是和原码相同。 负数的反码是将其原码除符号位之外的各位求反 -3反=10000011反=11111100 负数的补码是将其原码除符号位之外的各位求反之后在末位再加 1。 -3补=10000011补=11111101 一个数和它的补码是可逆的。 为什么要设立补码呢? 第一是为了
2、能让计算机执行减法: a-b补 =a 补 +( -b)补 第二个原因是为了统一正 0 和负 0 正零:00000000 负零:10000000 这两个数其实都是 0,但他们的原码却有不同的表示。 但是他们的补码是一样的,都是 00000000 特别注意,如果+1 之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!) 10000000补 =10000000反+1 =11111111+1 =(1)00000000 =00000000(最高位溢出了,符号位变成了 0) 有人会问 10000000 这个补码表示的哪个数的补码呢? 其实这是一个规定,这个数表示的是-128 所以 n 位补码能
3、表示的范围是 -2(n-1)到 2(n-1)-1 比 n 位原码能表示的数多一个又例:1011 原码:01011 反码:01011 /正数时,反码原码 补码:01011 /正数时,补码原码 -1011 原码:11011 反码:10100 /负数时,反码为原码取反 补码:10101 /负数时,补码为原码取反1 0 1101 原码:0.1101 反码:0.1101 /正数时,反码原码 补码:0.1101 /正数时,补码原码 -0 1101 原码:1.1101 反码:1.0010 /负数时,反码为原码取反 补码:1.0011 /负数时,补码为原码取反1 在计算机内,定点数有 3 种表示法:原码、反码和补码所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正, “1”表示负,其余位表示数值的大小。 反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加 1。