搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 输出八进制和16进制为什么不带符号
标题:
输出八进制和16进制为什么不带符号
只看楼主
lzxm160
等 级:
新手上路
帖 子:103
专家分:0
注 册:2006-12-26
楼主
问题点数:0 回复次数:5
输出八进制和16进制为什么不带符号
int a=-1;
printf("%d,%o,%x",a,a,a);
输出-1,177777,ffff
为什么没有输出带符号的八进制和16进制数
搜索更多相关主题的帖子:
八进制
符号
输出
int
ffff
2007-12-04 22:24
pinglideyu
来 自:武汉工程大学
等 级:
论坛游侠
威 望:
1
帖 子:735
专家分:140
注 册:2007-1-7
第
2
楼
得分:0
带符号?
你输出的八进制和十六进制里就已经含有符号位了,不知道LZ注意到没有
~~我的明天我知道~~
2007-12-04 22:46
xw8687301
等 级:
新手上路
帖 子:8
专家分:0
注 册:2007-9-17
第
3
楼
得分:0
不明白,八进制和十六进制输出输入需要带符号啊???这里没有,难道是进制位是表示符号!!!
2007-12-04 23:44
mndren
等 级:
新手上路
帖 子:31
专家分:0
注 册:2007-11-17
第
4
楼
得分:0
前面那个就是符号位
2007-12-05 15:49
gaojing90
等 级:
新手上路
帖 子:1
专家分:0
注 册:2014-2-5
第
5
楼
得分:0
这个问题以前也是不太明白,后来来回看书之后就可以理解了。有几点你需要明白。
第一点,数值在计算机中是以补码表示的。
第二点,整型变量的范围是-32768-32767。
第三点,八进制和十六进制的表示属于整型变量。所以范围依然是-32768-32767.
-1的补码是[1111 1111 1111 1111].
10进制的表示结果就是-1.
八进制的表示结果为 【1 111 111 111 111 111 111】=【177777】o
同理十六进制的结果为【1111 1111 1111 1111】=【ffff】h
其实他们显示的结果都是在内存中的存放方式。也就是都是表达着内存中【1111 1111 1111 1111】。不知道你明白了没有
2014-02-05 22:12
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-190431-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.049672 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved