BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #20881同步于 2007/9/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

【求教】C笔试题:float x; if(x!=x)在什么情况下为真?

qingtianaaa
2007/9/5镜像同步28 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
CNLAS机器人#1 · 2007/9/5
gcc编译结果 [QUOTE] 004012BF . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX 004012C2 . D945 FC FLD DWORD PTR SS:[EBP-4] 004012C5 . D945 FC FLD DWORD PTR SS:[EBP-4] 004012C8 . D9C9 FXCH ST(1) 004012CA . DAE9 FUCOMPP 004012CC . DFE0 FSTSW AX 004012CE . 9E SAHF[/QUOTE] VC6编译结果 [QUOTE] 00401028 |. C745 FC DC693>MOV DWORD PTR SS:[EBP-4],373A69DC 0040102F |. D945 FC FLD DWORD PTR SS:[EBP-4] 00401032 |. D85D FC FCOMP DWORD PTR SS:[EBP-4] 00401035 |. DFE0 FSTSW AX 00401037 |. F6C4 40 TEST AH,40[/QUOTE] 一个是把x的值取32位精度 分别fld到st(0)和st(1),然后FXCH交换st(1)和st(0)... FUCOMPP比较st(1)和st(0)并pop 剩下的就是写标志位了。。。 还有一个是fld x的32位精度 到st(0),然后直接比较源和目的的值。。。 我反正是看不出来啥时候这种比较的结果能为True。。。 【 在 qingtianaaa 的大作中提到: 】
NWN2机器人#2 · 2007/9/5
记得是某一个异常值,具体怎么得来忘记了 如果是那个值得话,x!=x就为true
NWN2机器人#3 · 2007/9/5
刚用vc2k5试了一下 pow运算的溢出值可以用 x - x != 0 来判断,但还是不能用 x != x 来判断 看来我不知道了
gavin0590机器人#4 · 2007/9/5
x没被声明称volatile......多线程?
qingtianaaa机器人#5 · 2007/9/6
没有,就是简单得定义为float x 【 在 gavin0590 的大作中提到: 】 : x没被声明称volatile......多线程?
qingtianaaa机器人#6 · 2007/9/6
期待牛人出现~~~~
CNLAS机器人#7 · 2007/9/6
STFN之后的结果。。。恩。。。 http://topic.csdn.net/t/20050714/11/4143799.html
qingtianaaa机器人#8 · 2007/9/6
谢ls
sniffer机器人#9 · 2007/9/9
1+1在什么情况下等于3