C语言格式字符printf八进制输出

main(){inta=-1;printf("%d,%o",a,a);}运行结果:-1,177777程序解析:-1在内存单元中(以补码形式存放)为(11111111111... main()
{ int a = -1;
printf("%d, %o", a, a);
}
运行结果:-1,177777 程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为(177777)8。
能解释具体点吗
展开
 我来答
L阳子
推荐于2018-04-19 · 超过15用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:34.9万
展开全部
-1的原码是1000 0000 0000 0001,既然知道-1是以补码形式存放的,那么应该知道补码是对原码取反,然后加1,也就是下面的过程,取反(符号位不变):1111 1111 1111 1110,加一:1111 1111 1111 1111,转化成8进制的之后就变成了177777
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式