~11 按位取反的结果 是什么?

来源:百度知道 编辑:UC知道 时间:2024/06/06 03:02:35
我要具体过程,我是新手,不要结果
正确的结果是-12 还有这是照几位算的

这要看是在几位机上操作,按位取反就是是把0变成1,1变成0,如果在四位机上操作,那你的11是几进制,正常情况我们把它看做十进制,有这些前提就可以开始做题了,按取反是针对二进制的,所以先把11化为二进制为1011B,二进制用B表示,如果机器位数是8位的11就化为00001011B,我们还按四位讲,现在是1011B,按位取反得0100B,这就是结果,你可以在化为十进制数,0100B=6D,十进制用D表示
B表示二进制,D表示十进制,H表示十六进制

11是十进制=(1011)二进制 补码为0,1011
0表示正数,按位取反得1,0100这是二进制补码,补码化为原码为11100,化为二进制真值为-(1100)=-1100=-12
(补码化为原码为:除符号位以为按位取反加一)

11的二进制表示是00000000000000000000000000001011,按位取反就是把0变成1,1变成0,得到最后的结果是11111111111111111111111111110100
如果是C++的话建议用STL里的bitset数据结构,封装了很多位运算操作。