unsigned的用法
老哥们,unsigned不是无符号整形的意思么#include<stdio.h>int main() {
int a, b, c;
unsigned u,d;
a = 12;
b = -24;
u = -10;
c = a + u;
d = b + u;
printf("u + a = % d, b + u =%d\n",c, d);
编译结果u+a=2,b+u=-34
我把d定义成了无符号整形,为什么输出的结果还带符号(-)
还有就是我也把u定义成了无符号整形,为什么u还是在里面是以(-10)的形式运算,不该是以(10)的形式进行计算么 无符号类型和int类型之间相加运算,可以总结为,先将无符号的数u先和int类型的i相加,如果算出的结果在unsigned之间的话(0~2147483647*2+1)之间的话,则结果就是这个范围里的数,如果,他们相加的数,是负数,或者超出这个范围,则最后的结果转化成无符号类型。
页:
[1]