刚学C++,有一点疑问请高人指点一下下面两段程序int a=100;unsigned int i=99;cout<<i-a<<endl输出结果为 95书上将其解释为:在算术运算中,有符号数向着无符号数方向进行隐式类型转换,运算的结果-1用无符号数表示即为 95这本来很好理解。但为什么下面这一个程序short a=100;unsigned short i=99;cout<<i-a<<endl输出的结果却为-1呢?
热心网友
因为unsigned的长度是8,int长度是4(以上数值与编译器有关,VC++中是这样的!)
热心网友
signed short int 有符号短整型数说明。简写为short或int, 字长为2因此 所谓的short 和int 都是有符号短整型数99-100=-1