读书人

C语言类型转换的结果?该怎么解决

发布时间: 2012-09-23 10:28:10 作者: rapoo

C语言类型转换的结果?

C/C++ code
#include <limits.h>unsigned  short  n=1000;  //1000位于unsigned short范围内。                                               /*                                                  这句话的意思是:                                                  unsigned short的范围是:0~65535。                                                   1000在0~65535范围之内,对否?                                                  类型转换结果:                                                  因为是在范围之内,所以类型转换结果不变!                                                  n的值是:1000,对否?                                                */n=-1;              //-1的值必须被转换                        /*                            unsigned short的范围是:0~65535。                             -1在范围之内,对否?                           类型转换结果:                           因为是在范围之内,所以类型转换结果变化!                           -1+(65535-1)=65535,对否?                        */


[解决办法]
-1就是最大的那个数

读书人网 >C语言

热点推荐