C语言中为什么int a=-1 printf("%o",a)等于177777

有谁可以把转换的过程说一下详细点小弟是菜鸟... 有谁可以把转换的过程说一下详细点小弟是菜鸟 展开
 我来答
pooronce
2006-01-16 · TA获得超过2272个赞
知道大有可为答主
回答量:1323
采纳率:0%
帮助的人:1519万
展开全部
可以看出,你的计算机的整型是双字节长度的,即16位
-1的整形数据,用补码存于计算机中,是16个1,即1111111111111111,换算成十六进制是FFFF,再换算成八进制便是177777了,十六进制和八进制都没有直接的“负”号的,都是用补码,所以你用“%O”,这个八进制格式符来格式整型的-1时,输入就成了177777了
子兴软件工作室
2006-01-16 · TA获得超过487个赞
知道小有建树答主
回答量:754
采纳率:50%
帮助的人:292万
展开全部
很久不用c语言了,%o是无符号整数吗?如果是那样就是自动吧负数的符号位作为数据显示了
具体的情况需要找资料了,呵呵,不好意思,不能给你确切的解答,等高手来看看吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小胡迪
2006-01-16 · TA获得超过240个赞
知道答主
回答量:206
采纳率:0%
帮助的人:148万
展开全部
%o格式指令将printf()函数输出一个八进制的整数.
负数用补码表示
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式