码迷,mamicode.com
首页 > 编程语言 > 详细

C语言位取反问题

时间:2014-09-09 18:15:09      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:style   ar   问题   sp   c   ef   r   bs   c语言   

1 具体是先把十进制的数先转换成二进制的原码,

   按位取反最后一位加一,然后“按权展开”,得到十进制的结果,

   如果第一位是1(指转换成二进制的原码中的第一位),说明故是负数所以要在结果前面加上负号-。

   例子:

     int x=20;

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

         结果是 -21

    求解过程:

x=20,
转换成二进制00010100
取反              11101011   得到~x
然后  按位取反最后一位加一(00010101),然后“按权展开”,得到十进制的结果,

C语言位取反问题

标签:style   ar   问题   sp   c   ef   r   bs   c语言   

原文地址:http://www.cnblogs.com/SharkBin/p/3963018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!