网站建设课程的感受,营销策划书案例,怎么做网站设,湖南省建设工程招标网原码#xff08;True form#xff09;#xff1a;原码是一种计算机中对数字的二进制表示方法#xff0c;数码序列中最高位为符号位#xff0c;符号位为0表示正数#xff0c;符号位为#xff11;表示负数#xff1b;其余有效值部分用二进制的绝对值表示。
反码#xf…
原码True form原码是一种计算机中对数字的二进制表示方法数码序列中最高位为符号位符号位为0表示正数符号位为表示负数其余有效值部分用二进制的绝对值表示。
反码1s complement在中国大陆称作反码港台地区称为一补数如果机器数是正数则该机器数的反码与原码一样如果机器数是负数则该机器数的反码是对它的原码符号位除外各位取反而得到的。
补码2s complement在中国大陆称作补码港台地区称为二补数如果机器数是正数则该机器数的补码与原码一样如果机器数是负数则该机器数的补码是对它的原码除符号位外各位取反并在末位加1。
正数的原码、反码、补码都是一样的。
如果正数和负数都用原码表示如下表所示int型数据占4byte32bit位 用原码来表示一个有符号数会带来两个问题
第一个问题就是正负相加不等于零。如1(-1)按照原码表示等于-2。
第二个问题就是有两个零存在分别为00000000 00000000 00000000 00000000和10000000 00000000 00000000 00000000。
可见原码不适合用来表示有符号数。
为了保证正负相加等于0尝试用反码表示有符号数。正数的反码与原码一样负数的反码是除了符号位原码按位取反。所以用反码表示如下 1(-1)按照反码就是-0(32个1最高位的1表示负号)。同理2(-2)也等于-0。
使用反码解决了第一个问题但是第二个问题仍然未解决。此时就要用到补码了。
正数的补码与原码一样负数的补码是除了符号位原码按位取反1也就是反码1用补码表示如下 用补码表示的话-0就不存在了-0就变成了0此时就只有一个0了。-21474836477-(2^31-1)减1就是-21474836478-(2^31)而-21474836477的补码减1就是10000000 00000000 00000000 00000000因此-21474836478的补码是10000000 00000000 00000000 00000000。整型数字在计算机中用补码表示取值范围是-(2^31)~(2^31-1)即-21474836478~2147483647 。