【发布时间】:2011-04-09 18:49:11
【问题描述】:
signed int x = -5;
unsigned int y = x;
y 的值是多少?这是怎么回事?
【问题讨论】:
-
当你尝试这个时,你看到了什么?
-
@KennyTM,未定义实现;从 unsigned int 转换为无法表示它的有符号 int 是实现定义的,但反过来 (signed -> unsigned) 是明确定义的。
-
@bdonlan:
UINT_MAX是实现定义。 -
@KennyTM:请修正严重错误的评论。我不敢相信它得到了+3票。有没有管理员能解决这个问题?
-
@Steve Jessop:根据标准,答案是 UINT_MAX - 4。UINT_MAX 是实现定义的。有一个直接的答案,但数字的答案是实现定义的。