有兴趣的进来看看

沧海桑人 2004-09-30 02:15:05
float x, 在什么情况下表达式(x != x)的值为真?
int x, y 在什么情况下表达式((x > 0) && (y > 0) && (x + y < x))的值为真?
unsigned int x, y 在什么情况下表达式((x > 0) && (y > 0) && (x + y < x))的值为真?
...全文
122 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
短歌如风 2004-09-30
  • 打赏
  • 举报
回复
写错了,我的意思是:
>int x, y 在什么情况下表达式((x > 0) && (y > 0) && (x + y < x))的值为真?
当x > (1 << (sizeof(int) * 8 - 1)) - 1 - y时
其实如果用C++来描述就是:
当 x > std::numeric_limits<int>::max() - y时。
我只是想找一种方法来表示“最大整数”和“最大无符号整数”。

后面两种情况是指x + y的结果超出了它们的类型的表示范围,从而发生了截断。

Daniel-lsg 2004-09-30
  • 打赏
  • 举报
回复
不是很明白,学习一下
njuzgj 2004-09-30
  • 打赏
  • 举报
回复
学习
沧海桑人 2004-09-30
  • 打赏
  • 举报
回复
怎么没人回答呀,自己帮自己UP一下.
沧海桑人 2004-09-30
  • 打赏
  • 举报
回复
TO: plainsong(短歌)
不明白

比如说第二个,如果我设y = 1 则(1 << (sizeof(int) - 1)) - 1 - y 的值为6,
但y=1,x=6显然不满足条件.
第一个与第三个也不明白,能不能说清楚点?谢谢.
短歌如风 2004-09-30
  • 打赏
  • 举报
回复
>float x, 在什么情况下表达式(x != x)的值为真?
当x是静态NaN时

>int x, y 在什么情况下表达式((x > 0) && (y > 0) && (x + y < x))的值为真?
当x > (1 << (sizeof(int) - 1)) - 1 - y时

>unsigned int x, y 在什么情况下表达式((x > 0) && (y > 0) && (x + y < x))的值为真?
当x > ~0u - y时

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧