Loading AI tools
等於0的表達式 来自维基百科,自由的百科全书
特定情况下,−0具有特殊意义:
在对于整数的1+7位元的符号数值表示法中,负零是用二进制代码10000000表示的。在8位元二进制反码中,负零是用二进制代码11111111表示,但二補數表示法則沒有負零的概念。在IEEE 754二进制浮点数算术标准中,指数和尾数为零、符号位元为一的数就是负零。
在IBM的普通十进制算数编码规范中,运用十进制来表示浮点数。这里负零被表示为指数为编码内任意合法数值、所有系数均为零、符号位元为一的数。
在编程语言,例如C、C#、C++和Java,一个表达式的结果可能是负零(比如对一个负数算术下溢时的结果),此时负零和正零是等效的。因此一个简单的比较不能够确定一个数是负零。确定一个数是负零的办法包括:
copysign()
函数复制零的符号到任意非零的数上。Double
类中的equals方法,能够分辨出正零和负零,[1]例如:
*(int *)&var == 0x80000000
(var在IEEE 754中编码单精度)。其他对于负零的运算有:
在气象学中,处于统计学的原因,−0常常用来表示一个低于零度却又不足以约分成-1的温度(无论华氏温标还是摄氏温标),比如−0.2度,它不能被列为零度因为零度显然不会小于零。然而低于零度的天数往往是比较冬季寒冷程度的一个基本统计数据,所以它并不能被忽略。不过它又没有低到能够约分为-1度,所以就被记录为−0度。[來源請求]
在统计力学中,一个系统可能会有负的绝对温度,但是和直觉相反,这并不是极端寒冷,反而是极端炎热,比任何一个正的温度都要高(意指−0=無限)。在相关文献裡,−0就是最高的温度。[2]