搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 问关于八进制负数输出问题
标题:
问关于八进制负数输出问题
只看楼主
苡木之心
等 级:
新手上路
帖 子:7
专家分:6
注 册:2016-5-12
结帖率:
0
楼主
已结贴
√
问题点数:20 回复次数:5
问关于八进制负数输出问题
如果into a=-14,理论上用八进制输出结果是-16,但结果却是177762,知道这个是因为补码问题,但详细的并不太清楚,有哪位大神能讲讲具体内容么,还有想要输出那个负数该怎么办(不行直接在printf()引号里加符号)。
搜索更多相关主题的帖子:
八进制
2016-05-12 23:07
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
2
楼
得分:4
让我们看看C标准文档是怎么规定的
o,u,x,X The unsigned int argument is converted to unsigned octal(o), unsigned decimal(u), or unsigned hexadecimal notation(x or X) in the style dddd;
看清楚了
unsigned int
吗?
2016-05-13 08:44
贝壳中的沙子
等 级:
新手上路
帖 子:4
专家分:4
注 册:2016-5-13
第
3
楼
得分:4
我也不太懂,还有十六进制也是十进制-1变十六进制为ffffffff怎么换算的
不怎么懂
2016-05-13 20:18
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
4
楼
得分:4
有符号32位
2016-05-13 20:39
骆驼的眼泪
等 级:
论坛游民
帖 子:6
专家分:19
注 册:2016-5-7
第
5
楼
得分:4
#include<stdio.h>
int main()
{
int a;
a= -14;
printf("%d\0",a);
return 0;
}
2016-05-15 12:43
alice_usnet
等 级:
贵宾
威 望:
18
帖 子:370
专家分:2020
注 册:2016-3-7
第
6
楼
得分:4
对于16位的int,int a=-14在计算机中被编码为11111111 11110010(采用补码最高位被作为符号位),转换成八进制每三位对应一位八进制位,不足的左边补0,所以对应过来为177762。32位机器为37777777762。
还有八进制都是无符号的,不能用八进制保存或计算一个负数。
未佩好剑,转身便已是江湖
2016-05-15 13:27
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-464743-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.875875 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved