fbpx
维基百科

−0

−0负零代表0相反数,等于0。特定情况下,−0可能具有特殊意义。 在计算机科学中,−0主要用来表达浮点数,以及在某些时候对整数进行有符号数处理

在普通应用中,−0有可能被用来表示一个可以四舍五入为零的负数,或者是一个从负方向上趋近于零的数。

统计力学中,特定的系统在反转分布的状态下,可以被认为拥有−0的绝对温度

计算机科学

表示法

 

在对于整数的1+7位元的符号数值表示法中,负零是用二进制代码10000000表示的。在8位元二进制反码中,负零是用二进制代码11111111表示,但二補數表示法則沒有負零的概念。在IEEE 754二进制浮点数算术标准中,指数和尾数为零、符号位元为一的数就是负零。

IBM的普通十进制算数编码规范中,运用十进制来表示浮点数。这里负零被表示为指数为编码内任意合法数值、所有系数均为零、符号位元为一的数。

性质与处理

在编程语言,例如CC#C++Java,一个表达式的结果可能是负零(比如对一个负数算术下溢时的结果),此时负零和正零是等效的。因此一个简单的比较不能够确定一个数是负零。确定一个数是负零的办法包括:

  1. 使用IEEE 754中定义的copysign()函数复制零的符号到任意非零的数上。
  2. 用一个正数来除以这个零——得到的无穷能够反映出零的符号
    •   (x>0)
    •   (x>0)
  3. 在Java中,用Double中的equals方法,能够分辨出正零和负零,[1]例如:
    • Double negativeZero = new Double(-0.0);
      negativeZero.equals(-0.0); // 结果:真
      negativeZero.equals( 0.0); // 结果:假
  4. 在C语言中,使用一个依赖于本地硬件表示法的不方便的办法。例: *(int *)&var == 0x80000000varIEEE 754中编码单精度)。

其他对于负零的运算有:

  •   (x>0)
  •   (x<0)
  •   (x<0)
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •   (x>0)
  •  

自然科学

气象学中,处于统计学的原因,−0常常用来表示一个低于零度却又不足以约分成-1的温度(无论华氏温标还是摄氏温标),比如−0.2度,它不能被列为零度因为零度显然不会小于零。然而低于零度的天数往往是比较冬季寒冷程度的一个基本统计数据,所以它并不能被忽略。不过它又没有低到能够约分为-1度,所以就被记录为−0度。[來源請求]

统计力学中,一个系统可能会有负的绝对温度,但是和直觉相反,这并不是极端寒冷,反而是极端炎热,比任何一个正的温度都要高(意指−0=無限)。在相关文献裡,−0就是最高的温度。[2]

参考资料

  1. ^ Double (Java Platform SE 6). docs.oracle.com. [2022-12-10]. (原始内容于2022-12-25). 
  2. ^ Kittel, Charles; Kroemer, Herbert. Thermal Physics. W. H. Freeman & Company. 1980. ISBN 0-7167-1088-9. 
  • . MSDN C#语言详述. [2005年10月15日]. (原始内容存档于2006年8月24日). 
  • . MSDN C#语言详述. [2005年10月15日]. (原始内容存档于2005年11月21日). 
  • Thomas Wang. . 2000年3月 [2007-07-07]. (原始内容存档于2005-09-21). 
  • Specification. General Decimal Arithmetic: Encoding Strawman 4d, version 0.96. [2005年10月16日]. (原始内容存档于2012年2月17日).  — 一个包含有负零的“十进制”浮点数规范

延伸阅读

  • Michael Ingrassia. Fortran 95 SIGN Change. Sun Developer Network. [2005年10月15日]. (原始内容存档于2012年2月17日). ——Fortran语言中(Fortran 95)SIGN 函数的一个变化以适应负零
  • . MSDN JScript. [2005年10月16日]. (原始内容存档于2005年11月10日). ——JScript的浮点数从定义上即包括负零
  • A look at the floating-point support of the Java virtual machine. Javaworld. [2005年10月16日]. (原始内容存档于2012年2月17日). ——Java虚拟机中负零的表示法
  • Bruce Dawson. Comparing floating point numbers. [2007-07-07]. (原始内容于2007-07-03). ——在比较浮点数时是怎么处理负零的
  • John Walker. Minus Zero. UNIVAC Memories. [2005年10月17日]. (原始内容存档于2012年2月17日). ——UNIVAC® 1100 系列电脑中的二进制反码

参见

本條目存在以下問題, 請協助改善本條目或在討論頁針對議題發表看法, 此條目需要精通或熟悉计算机科学的编者参与及协助编辑, 2010年1月2日, 請邀請適合的人士改善本条目, 更多的細節與詳情請參见討論頁, 此條目需要补充更多来源, 2013年6月25日, 请协助補充多方面可靠来源以改善这篇条目, 无法查证的内容可能會因為异议提出而移除, 致使用者, 请搜索一下条目的标题, 来源搜索, 网页, 新闻, 书籍, 学术, 图像, 以检查网络上是否存在该主题的更多可靠来源, 判定指引, 或负零代表0的相反数, 等于0, 特. 本條目存在以下問題 請協助改善本條目或在討論頁針對議題發表看法 此條目需要精通或熟悉计算机科学的编者参与及协助编辑 2010年1月2日 請邀請適合的人士改善本条目 更多的細節與詳情請參见討論頁 此條目需要补充更多来源 2013年6月25日 请协助補充多方面可靠来源以改善这篇条目 无法查证的内容可能會因為异议提出而移除 致使用者 请搜索一下条目的标题 来源搜索 0 网页 新闻 书籍 学术 图像 以检查网络上是否存在该主题的更多可靠来源 判定指引 0或负零代表0的相反数 等于0 特定情况下 0可能具有特殊意义 在计算机科学中 0主要用来表达浮点数 以及在某些时候对整数进行有符号数处理 在普通应用中 0有可能被用来表示一个可以四舍五入为零的负数 或者是一个从负方向上趋近于零的数 在统计力学中 特定的系统在反转分布的状态下 可以被认为拥有 0的绝对温度 目录 1 计算机科学 1 1 表示法 1 2 性质与处理 2 自然科学 3 参考资料 4 延伸阅读 5 参见计算机科学 编辑表示法 编辑 以IEEE 754單精度浮點數表示負零 在对于整数的1 7位元的符号数值表示法中 负零是用二进制代码10000000表示的 在8位元二进制反码中 负零是用二进制代码11111111表示 但二補數表示法則沒有負零的概念 在IEEE 754二进制浮点数算术标准中 指数和尾数为零 符号位元为一的数就是负零 在IBM的普通十进制算数编码规范中 运用十进制来表示浮点数 这里负零被表示为指数为编码内任意合法数值 所有系数均为零 符号位元为一的数 性质与处理 编辑 在编程语言 例如C C C 和Java 一个表达式的结果可能是负零 比如对一个负数算术下溢时的结果 此时负零和正零是等效的 因此一个简单的比较不能够确定一个数是负零 确定一个数是负零的办法包括 使用IEEE 754中定义的copysign 函数复制零的符号到任意非零的数上 用一个正数来除以这个零 得到的无穷能够反映出零的符号 x 0 displaystyle frac x 0 infty x gt 0 x 0 displaystyle frac x 0 infty x gt 0 在Java中 用Double类中的equals方法 能够分辨出正零和负零 1 例如 Double negativeZero new Double 0 0 negativeZero equals 0 0 结果 真negativeZero equals 0 0 结果 假 在C语言中 使用一个依赖于本地硬件表示法的不方便的办法 例 int amp var 0x80000000 var在IEEE 754中编码单精度 其他对于负零的运算有 0 x 0 displaystyle frac 0 x 0 x gt 0 0 x 0 displaystyle frac 0 x 0 x lt 0 0 x 0 displaystyle frac 0 x 0 x lt 0 0 0 displaystyle frac 0 infty 0 0 0 displaystyle frac 0 infty 0 0 0 displaystyle frac 0 infty 0 0 0 0 displaystyle 0 cdot 0 0 0 0 0 displaystyle 0 0 0 0 0 0 displaystyle 0 0 0 0 0 0 displaystyle 0 0 0 0 0 0 displaystyle 0 0 0 x 0 0 displaystyle x cdot 0 0 x gt 0 x 0 x displaystyle x 0 x 自然科学 编辑在气象学中 处于统计学的原因 0常常用来表示一个低于零度却又不足以约分成 1的温度 无论华氏温标还是摄氏温标 比如 0 2度 它不能被列为零度因为零度显然不会小于零 然而低于零度的天数往往是比较冬季寒冷程度的一个基本统计数据 所以它并不能被忽略 不过它又没有低到能够约分为 1度 所以就被记录为 0度 來源請求 在统计力学中 一个系统可能会有负的绝对温度 但是和直觉相反 这并不是极端寒冷 反而是极端炎热 比任何一个正的温度都要高 意指 0 無限 在相关文献裡 0就是最高的温度 2 参考资料 编辑 Double Java Platform SE 6 docs oracle com 2022 12 10 原始内容存档于2022 12 25 Kittel Charles Kroemer Herbert Thermal Physics W H Freeman amp Company 1980 ISBN 0 7167 1088 9 Floating point types MSDN C 语言详述 2005年10月15日 原始内容存档于2006年8月24日 Division operator MSDN C 语言详述 2005年10月15日 原始内容存档于2005年11月21日 Thomas Wang Java Floating Point Number Intricacies 2000年3月 2007 07 07 原始内容存档于2005 09 21 Specification General Decimal Arithmetic Encoding Strawman 4d version 0 96 2005年10月16日 原始内容存档于2012年2月17日 一个包含有负零的 十进制 浮点数规范延伸阅读 编辑Michael Ingrassia Fortran 95 SIGN Change Sun Developer Network 2005年10月15日 原始内容存档于2012年2月17日 Fortran语言中 Fortran 95 SIGN 函数的一个变化以适应负零 JScript data types MSDN JScript 2005年10月16日 原始内容存档于2005年11月10日 JScript的浮点数从定义上即包括负零 A look at the floating point support of the Java virtual machine Javaworld 2005年10月16日 原始内容存档于2012年2月17日 Java虚拟机中负零的表示法 Bruce Dawson Comparing floating point numbers 2007 07 07 原始内容存档于2007 07 03 在比较浮点数时是怎么处理负零的 John Walker Minus Zero UNIVAC Memories 2005年10月17日 原始内容存档于2012年2月17日 UNIVAC 1100 系列电脑中的二进制反码参见 编辑0 数学 计算机科学 编程语言 取自 https zh wikipedia org w index php title 0 amp oldid 75665919, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。