即使你设置了他为unsigned型,但你使用%d格式输出他就会输出-7,也就是说你用%d就是对他的格式进行了转化.如果你要输出无符号数的话,把语句改为:
printf("(1)ss=%d,us=%u",ss,us);
printf("(3)us2=%u,ss=%d",us2,ss;
输出使用%u输出无符号数。
u 以无符号十进制形式输出整数
这个东西是因为负数是以补码形式存在计算机里面的,.你的-7的补码在计器里面输出为一个正数..所以把你补码的数直接算成正数..所以为成为你得到的这个数..
是因为定义的类型不统一产生的..
超出有符号数的表示范围.....
最高位被当作有符号来处理...