−0
维基百科,自由的百科全书
|
|
本条目需要精通或熟悉本主题的專業人士参与及協助编辑。 |
-0或负零代表0的相反数,等于0。特定情况下,-0可能具有特殊意义。
在计算机科学中,-0主要用来表达浮点数,以及在某些时候对整数进行有符号数处理。
在普通应用中,-0有可能被用来表示一个可以四舍五入为零的负数,或者是一个从负方向上趋近于零的数。
在统计力学中,特定的系统在反转分布的状态下,可以被认为拥有-0的绝对温度。
目录 |
计算机科学 [编辑]
表示法 [编辑]
在对于整数的1+7位元的符号数值表示法中,负零是用二进制代码10000000表示的。在8位元二进制反码中,负零是用二进制代码11111111表示,但二補數表示法則沒有負零的概念。在IEEE 754二进制浮点数算术标准中,指数和尾数为零、符号位元为一的数就是负零。
在IBM的普通十进制算数编码规范中,运用十进制来表示浮点数。这里负零被表示为指数为编码内任意合法数值、所有系数均为零、符号位元为一的数。
性质与处理 [编辑]
在编程语言中,例如C,C#,C++和Java,一个表达式的结果可能是负零(比如对一个负数算术下溢时的结果),此时负零和正零是等效的。因此一个简单的比较不能够确定一个数是负零。确定一个数是负零的办法包括:
- 使用IEEE 754中定义的
copysign()函数复制零的符号到任意非零的数上。 - 用一个正数来除以这个零——得到的无穷能够反映出零的符号
(x>0)
(x>0)
- 在Java中,用
Double类中的equals方法,能够分辨出正零和负零,例如:- Double negativeZero = new Double(-0.0);
negativeZero.equals(-0.0); // 结果:真
negativeZero.equals( 0.0); // 结果:假
- Double negativeZero = new Double(-0.0);
- 在C语言中,使用一个依赖于本地硬件表示法的不方便的办法。例:
*(int *)&var == 0x80000000(var在IEEE 754中编码单精度)。
其他对于负零的运算有:
(x>0)
(x<0)
(x<0)







(x>0)
自然科学 [编辑]
| 本条目没有列出任何参考或来源。(2011年11月27日) |
在气象学中,处于统计学的原因,-0常常用来表示一个低于零度却又不足以约分成-1的温度(无论华氏温标还是摄氏温标),比如-0.2度,它不能被列为零度因为零度显然不会小于零。然而低于零度的天数往往是比较冬季寒冷程度的一个基本统计数据,所以它并不能被忽略。不过它又没有低到能够约分为-1度,所以就被记录为-0度。
在统计力学中,一个系统可能会有负的绝对温度,但是和直觉相反,这并不是极端寒冷,反而是极端炎热,比任何一个正的温度都要高(意指-0=無限)。在相关文献里,-0就是最高的温度。
参考资料 [编辑]
- Floating point types. MSDN C#语言详述. [10月15日]. 已忽略未知参数
|accessyear=(帮助) - Division operator. MSDN C#语言详述. [10月15日]. 已忽略未知参数
|accessyear=(帮助) - Thomas Wang. Java Floating-Point Number Intricacies. 20009月. 2000年3月.
- Specification. General Decimal Arithmetic: Encoding Strawman 4d, version 0.96. [10月16日]. 已忽略未知参数
|accessyear=(帮助) — 一个包含有负零的“十进制”浮点数规范 - Kittel, Charles; and Herbert Kroemer. Thermal Physics. W. H. Freeman & Company. 1980. ISBN 0-7167-1088-9.
延伸阅读 [编辑]
- Michael Ingrassia. Fortran 95 SIGN Change. Sun Developer Network. [10月15日]. 已忽略未知参数
|accessyear=(帮助)——Fortran语言中(Fortran 95)SIGN函数的一个变化以适应负零 - JScript data types. MSDN JScript. [10月16日]. 已忽略未知参数
|accessyear=(帮助)——JScript的浮点数从定义上即包括负零 - A look at the floating-point support of the Java virtual machine. Javaworld. [10月16日]. 已忽略未知参数
|accessyear=(帮助)——Java虚拟机中负零的表示法 - Bruce Dawson. Comparing floating point numbers.——在比较浮点数时是怎么处理负零的
- John Walker. Minus Zero. UNIVAC Memories. [10月17日]. 已忽略未知参数
|accessyear=(帮助)——UNIVAC® 1100 系列电脑中的二进制反码
(x>0)
(x>0)
(x>0)
(x<0)
(x<0)







(x>0)