关于C语言问题的来、进制之间
答案:3 悬赏:40 手机版
解决时间 2021-05-05 19:35
- 提问者网友:鐵馬踏冰河
- 2021-05-05 02:13
-1在内存单元中(补码)形式为:
a=-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
则:int a=-1;
printf(”%d,%o”,a,a);
的输出为:-1,177777
最佳答案
- 五星知识达人网友:醉吻情书
- 2021-05-05 02:52
1在内存中是16个1,
o% 是以8进制输出的
2进制转化为8进制 从右起每3位转化一个8进制,最前面不足
3位的补0
001 111 111 111 111 111
得 1 7 7 7 7 7
即输出为结果为177777
全部回答
- 1楼网友:荒野風
- 2021-05-05 05:25
你在内存以补码的方式存的,以10进制输出当然是-1,没问题,关键是在转换为八进制输出是,前面的-1丢掉了,然后就变成了
- 2楼网友:末日狂欢
- 2021-05-05 03:53
八进制是不能表示为负数的,至于为什么为177777,-1在内存中是16个1,十六进制为ffff,而如果把这个数八进制表示就是177777,如你所见。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯