int:
32位INT数据类型可以将整数值保持在-2,147,483,648至2,147,483,647。您也可以将此数据类型称为已签名的INT或已签名。
unsigned int:
32位未签名的INT数据类型可以将整数值保持在0到4,294,967,295的范围内。您也可以将此数据类型简单地称为未签名。
好的,但是,实际上:
int x = 0xFFFFFFFF;
unsigned int y = 0xFFFFFFFF;
printf("%d, %d, %u, %u", x, y, x, y);
// -1, -1, 4294967295, 4294967295
没有区别,O.O。我有点困惑。
答案
呵呵。您在这里有一个隐性的演员printf
期望什么类型。
试试尺寸的尺寸:
unsigned int x = 0xFFFFFFFF;
int y = 0xFFFFFFFF;
if (x < 0)
printf("one\n");
else
printf("two\n");
if (y < 0)
printf("three\n");
else
printf("four\n");