永发信息网

C语言中,为什么~0的结果转化为16进制后是oxffffffff?~0转化为二进制不是111111

答案:1  悬赏:0  手机版
解决时间 2021-11-11 12:45
  • 提问者网友:温旧梦泪无声
  • 2021-11-11 03:20
C语言中,为什么~0的结果转化为16进制后是oxffffffff?~0转化为二进制不是111111
最佳答案
  • 五星知识达人网友:孤老序
  • 2021-11-11 03:49
16进制的0xffffffff 换算成2进制 为 1111 1111 1111 1111 1111 1111 1111 1111追问Printf(“~0是ox%x\n”,0);请问这段代码中的0为什么按照16位的二进制进行安位取反,什么情况下是安装8位二进制计算呢?谢谢刚刚打错了 应该是Printf(“~0是ox%x\n”,~0);请问这段代码中的0为什么按照16位的二进制进行安位取反,什么情况下是安装8位二进制计算呢?谢谢追答你那句输出语句输出的应该是8位16进制数
用多少位去表示取决于那个数在计算机在内存中占用多少个位,而不是什么别的追问取反后的二进制为什么不是11111111啊?11111111的话转换16进制结果就是ox000000ff了追答因为 在你的机器中 int 要用 32位去表示,所以~0是1111 1111 1111 1111 1111 1111 1111 1111
0 是 0000 0000 0000 0000 0000 0000 0000 0000追问谢谢!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯