输出如果是-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.......哈哈.
LZ肯定把65535误为了35535.......哈哈.
应该是楼主把65535写成是35535了
35535输出的结果是a=-30001;
如果把35535改成65535输出的结果就是a=-1;
如果把后面的printf("a=%d",a);改成printf("a=%u\n",a);
输出的结果就是会是a=65535
----------------解决方案--------------------------------------------------------
......貌似是我写错了
----------------解决方案--------------------------------------------------------
A好象超出了短整形的定义范围,输出的结果是任意的吧
----------------解决方案--------------------------------------------------------