unsigned int value4=2147483648;<br /><br />关键是2147483648是一个字面常量,类型是int型,而不是unsigned int.<br />上面这个语句,需要先将int类型,转换成unsigned int类型,再赋值给value4;<br />在转换过程中,因为这个数值超过32位int类型的表示范围,所以会出现你所见到的那个警告.<br /><br />unsigned int value2=0x80000000;<br />0x80000000;字面类型是unsigned的,所以在32位的表示范围之内.<br /><br />如果你想要明白告诉编译器,2147483648就是unsigned 类型,你可以这么做.<br />unsigned int value4=2147483648u;
|