发布于 2008-06-27 22:19:20
0楼
长整数与浮点数都是32位二进制,比如二进制串 00111111 10000000 00000000 00000000,如果当浮点数看,它是1.0,如果当长整数看,它是 1065353216
区别是长整数没有要求,任何一个2进制位的排列都是一个合法的长整数,而浮点数有自己的格式要求,不是所有的二进制排列都是合法的浮点数。
所以32位二进制的所有排列都是有效的长整数,只有一部分是合法的浮点数,如果将它们当长整数看,这个长整数数列是离散的。
拿 DW 跟 R 比较时,如果 DW 的二进制排列恰好可以当作一个合法的浮点数,则比较指令不会出错。虽然比较指令可能不会出错,但比较结果显然不是所期待的,因为将浮点数当整数看或将整数当浮点数看,它们完全“不是一回事”
生命存在的方式只有两种:腐烂或燃烧