举例加深对补码运算的认识

来源:互联网 发布:lol比赛竞猜软件 编辑:程序博客网 时间:2024/05/16 08:40
为了方便用一套电路实现全部整数的加法——计算机以补码的形式存储数据:


正数:原码和补码一样。

负数:原码转补码取反加一:即符号位不变,其他各位取反,然后加1;


说明:

16-8=16+(-8)

(0001 0000)+(1000 1000)=(1001 1000)    //-24

补码:(0001 0000)+(1111 1000)=(10000 1000) //第九位舍去,+8


例:
      int x=8;int y=~8;cout<<y;    //输出-9
     8的二进制:0000 1000—取反1111 0111——1000 1001,即-9;


例:

int a=-32;
int b=~a;
printf("%x",a);         //补码:ffff ffe0
printf("%x",b);        //1f
printf("%d",b);       //31

原创粉丝点击