【发布时间】:2012-02-21 03:48:51
【问题描述】:
int:
32 位 int 数据类型可以保存范围为 -2,147,483,648 至 2,147,483,647。您也可以参考此数据类型 作为signed int 或signed。
无符号整数:
32 位无符号整数数据 type 可以保存 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.我有点困惑。
【问题讨论】:
-
您需要考虑
int和unsigned int的二进制 表示。 -
发生这种情况的真正原因是 C 是一种 weakly typed 语言。但是
unsigned int和int真的不一样。
标签: c