当前位置: 代码迷 >> C语言 >> [求助]新手求助,别笑我哈...
  详细解决方案

[求助]新手求助,别笑我哈...

热度:47   发布时间:2007-10-19 17:00:11.0
[求助]新手求助,别笑我哈...
#include "stdio.h"
main ()
{ unsigned int a=65535;
printf("a=%d",a);}
书上说运行结果是a=-1
为什么啊?
不是已经定义了a是无符号int吗?
"%d" 是不是含有输出 带符号整型数据的意思?


ps:蓝色的我原来写错了,造成部分同学的迷惑 不好意思.

[此贴子已经被作者于2007-10-24 11:16:25编辑过]

搜索更多相关的解决方案: include  

----------------解决方案--------------------------------------------------------
下班回家了,晚上再来  大哥们 帮帮我这个初学者哇
----------------解决方案--------------------------------------------------------
可能是书上写错了。
----------------解决方案--------------------------------------------------------
我我刚试一下a=35535的
----------------解决方案--------------------------------------------------------
%d是带符号的整形数据,值域是-32768 到 32767.就是说凡是超出32767的数都不能正常显示.
----------------解决方案--------------------------------------------------------

那么就是说书上说的是对的喽?


----------------解决方案--------------------------------------------------------

也就是说输出%d的话,就是带符号的咯 前面的unsigned int 的定义没啥意义?


----------------解决方案--------------------------------------------------------
以下是引用kingkino在2007-10-19 20:14:13的发言:

也就是说输出%d的话,就是带符号的咯 前面的unsigned int 的定义没啥意义?

有无意义要具体问题具体分析.

这道题考察的是有符号和无符号数的取值范围.


----------------解决方案--------------------------------------------------------

大概明白你的意思了....谢谢版主


----------------解决方案--------------------------------------------------------
以下是引用kingkino在2007-10-19 17:00:11的发言:
#include "stdio.h"
main ()
{ unsigned int a=35535;
printf("a=%d",a);}
书上说运行结果是a=-1
为什么啊?
不是已经定义了a是无符号int吗?
"%d" 是不是含有输出 带符号整型数据的意思?

为什么我输出的是-3001的?


----------------解决方案--------------------------------------------------------
  相关解决方案