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

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

热度:98   发布时间:2007-10-19 22:43:10.0

输出如果是-1,应该是65535;

定义为unsigned,是为了在程序中作为无符号类型来用,
输出时应该按照无符号类型输出,

printf("a=%u\n",a);


----------------解决方案--------------------------------------------------------
程序运行的结果是:a=35535;也许不同的编译器有区别吧!
----------------解决方案--------------------------------------------------------
LZ肯定把65535误为了35535.......哈哈.
----------------解决方案--------------------------------------------------------
貌似,这个根据具体的机器还不一样的说,这种地方有的是要硬件决定的,所以最好写标准的,不然在你的机器上运行结果正确在别的机器上就不一定了哦(谭老这样子说的)
----------------解决方案--------------------------------------------------------
恩 应该是65535才对
----------------解决方案--------------------------------------------------------
%d是带符号的整形数据,值域是-32768 到 32767.就是说凡是超出32767的数都不能正常显示.a=-1说明结果为假而非真。
----------------解决方案--------------------------------------------------------
额 是 我也是这样的结果
我输出的结果是 a=-3001
----------------解决方案--------------------------------------------------------
以下是引用jinxin3256在2007-10-22 12:40:40的发言:
LZ肯定把65535误为了35535.......哈哈.

应该是楼主把65535写成是35535了
35535输出的结果是a=-30001;
如果把35535改成65535输出的结果就是a=-1;
如果把后面的printf("a=%d",a);改成printf("a=%u\n",a);
输出的结果就是会是a=65535


----------------解决方案--------------------------------------------------------
......貌似是我写错了  
----------------解决方案--------------------------------------------------------

A好象超出了短整形的定义范围,输出的结果是任意的吧


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