补码,反码运算

来源:互联网 发布:linux mv 目录 编辑:程序博客网 时间:2024/06/05 01:25

数在计算机里都是二进制形式。正数原码,负数补码。

正数:原码=反码=补码

1的原码00000001

     反码 00000001

     补码00000001

负数:原码   数的最高位为1,后面与正数一样。

                      -3的原码1000 0011

            反码   除了首位不变,其余位取反。

                      -3的反码1111 1100

            补码  反码的最后一位+1

                      -3的补码1111 1101

例子:

#include<stdio.h>

void main(){

     short   int  n=-32768;               //2^15=32768       short占2字节

    n--;

printf("%d\n",n);

}

-32786的原码1 1000 0000 0000 0000,反码1 0111 1111 1111 1111,补码1 1000 0000 0000 0000,

超过16位,就从右读16位,变成1000 0000 0000 0000。


0 0
原创粉丝点击