1 具体是先把十进制的数先转换成二进制的原码,
按位取反最后一位加一,然后“按权展开”,得到十进制的结果,
如果第一位是1(指转换成二进制的原码中的第一位),说明故是负数所以要在结果前面加上负号-。
例子:
int x=20;
printf("%d\n",~x);
结果是 -21
求解过程:
x=20,
转换成二进制00010100
取反 11101011 得到~x
然后 按位取反最后一位加一(00010101),然后“按权展开”,得到十进制的结果,
1 具体是先把十进制的数先转换成二进制的原码,
按位取反最后一位加一,然后“按权展开”,得到十进制的结果,
如果第一位是1(指转换成二进制的原码中的第一位),说明故是负数所以要在结果前面加上负号-。
例子:
int x=20;
printf("%d\n",~x);
结果是 -21
求解过程:
x=20,
转换成二进制00010100
取反 11101011 得到~x
然后 按位取反最后一位加一(00010101),然后“按权展开”,得到十进制的结果,
下一篇:类文件结构与javap的使用
c语言:0的按位取反结果
在C语言中,数据类型的字节数是不同的。不同的数据类型,二进制
C语言位操作
有时,存储1个信息不必占用1个字节,只需二进制的1个(或多个)位就够用。如果仍然使用结构类型,则造成内
位运算,运算注意要点
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M