首页 > 用户发贴区 > 编程问题提问区 > int数取反问题
2007
10-10

大家好!向各位求教:
int x=9,y=5,z,a;
z=~x;a=~y;
z的值为什么是-10,a的值为什么是-6?


int数取反问题》有 6 条评论

  1. cdslz 说:

    “~”是不是求后面变量的补码啊?

  2. 初级菜鸟 说:

      

         二进制        十进制     

    取反前:X 00001001        9

    取反后: X 11110110       -10

                                                     取反前:y 00000110        5

    取反后:y 11111001       -5   

      书上是这样说的     

                               我认为(-9)+(-1 )=-10  

      

      我有个问题想问你,希望你能告诉我,我的问题就在你楼上。

  3. lxnini 说:

    初级菜鸟:谢谢你的回复.

      但9取反后为11110110,为什么输出值为  -10呢. 

  4. 初级菜鸟 说:

    书上说:因为上面的数字是1下面的就是0,上面的数字是0下面的就是1

    输出值是-10,设取反前9为x,取反后为(-x)减1,就是(-9)-1书上只写了那几排两进制数,我看了好几个数的去反值都符合着个规律我想应该是这样的,你可以上机试一试。

    你还没回答我的问题呢,我就在你下面。

  5. L.Y.Bin_1986 说:

    在机子上试了下,无论x取什么值,z都是等于-x-1.
    原理还是不懂。

  6. 初级菜鸟 说:

    你安装的是什么版本的编程软件,如何安装。如何进入编程环境。你的问题等我进入编程环境后告诉你。

留下一个回复