C语言位取反问题

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

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

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

例子:

  int x=20;

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

结果是 -21

求解过程:

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

上一篇:UE4 读取本地图片


下一篇:Linux的文件类型