查看“︁−0”︁的源代码
←
−0
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{NoteTA|G1=IT}} {{multiple issues| {{expert|1=计算机科学|time=2010-01-02T10:33:32+00:00}} {{Refimprove|time=2013-06-25T04:30:40+00:00 }} }} '''−0'''或'''负零'''代表'''[[0]]'''的[[加法逆元|相反数]],数学意义上等于0。 特定情况下,−0具有特殊意义: * 在[[计算机科学]]中,−0是[[浮点数]]中表达0的一种方式,可以在某些时候进行[[符号性]]处理。 * 在普通应用中,−0有可能被用来表示一个可以[[數值修約規則|四舍五入]]为零的[[负数]],或者是一个从负方向上[[极限 (数学)|趋近]]于零的数。 * 在[[统计力学]]中,特定的系统在[[居量反轉|反转分布]]的状态下,可以被认为拥有−0的[[热力学温标|绝对温度]]。 == 计算机科学 == === 表示法 === [[File:IEEE 754 Single Negative Zero.svg|400px|thumb|以[[IEEE 754]][[單精度浮點數]]表示負零]] 在对于整数的1+7位元的[[有符号数处理|符号数值表示法]]中,负零是用二进制代码10000000表示的。在8位元[[二进制反码]]中,负零是用二进制代码11111111表示,但[[二補數]]表示法則沒有負零的概念。在[[IEEE 754]]二进制浮点数算术标准中,指数和尾数为零、符号位元为一的数就是负零。 在[[IBM]]的普通十进制算数编码规范中,运用十进制来表示浮点数。这里负零被表示为指数为编码内任意合法数值、所有系数均为零、符号位元为一的数。 === 性质与处理 === 在编程语言,例如[[C语言|C]]、[[C♯|C#]]、[[C++]]和[[Java]],一个表达式的结果可能是负零(比如对一个负数算术下溢时的结果),此时负零和正零是等效的。因此一个简单的比较不能够确定一个数是负零。确定一个数是负零的办法包括: #使用[[IEEE 754]]中定义的<code>copysign()</code>函数复制零的符号到任意非零的数上。 #用一个正数来除以这个零——得到的无穷能够反映出零的符号 #* <math>\frac{x}{+0} = +\infty</math> (x>0) #* <math>\frac{x}{-0} = -\infty</math> (x>0) #在Java中,用<code>Double</code>[[类 (计算机科学)|类]]中的<tt>equals</tt>方法,能够分辨出正零和负零,<ref>{{Cite web |title=Double (Java Platform SE 6) |url=https://docs.oracle.com/javase/6/docs/api/java/lang/Double.html |access-date=2022-12-10 |website=docs.oracle.com |archive-date=2022-12-25 |archive-url=https://web.archive.org/web/20221225045744/https://docs.oracle.com/javase/6/docs/api/java/lang/Double.html |dead-url=no }}</ref>例如: #*<tt>Double negativeZero = new Double(-0.0);<br />negativeZero.equals(-0.0); // 结果:真<br />negativeZero.equals( 0.0); // 结果:假</tt> #在C语言中,使用一个依赖于本地[[计算机硬件|硬件]]表示法的不方便的办法。例: <code>*(int *)&var == 0x80000000</code>(<tt>var</tt>在[[IEEE 754]]中编码单精度)。 <!-- Surely compare is numeric .... or: <code>double negativeZero = -0.0;<br /> Double.compare( negativeZero, -0.0 ) == 0; // Result: true</code> Conversely, Java coders should be aware that any comparisons to zero using compare or equals methods rather than the <code>==</code> operator may have unexpected results if a negative zero is present. --> 其他对于负零的运算有: * <math>\frac{-0}{x} = -0</math> (x>0) * <math>\frac{-0}{x} = +0</math> (x<0) * <math>\frac{+0}{x} = -0</math> (x<0) * <math>\frac{-0}{+\infty} = -0</math> * <math>\frac{-0}{-\infty} = +0</math> * <math>\frac{+0}{-\infty} = -0</math> * <math>(-0) \cdot (-0) = +0</math> * <math>(-0) - (+0) = -0</math> * <math>(-0) - (-0) = 0</math> * <math>(+0) + (-0) = 0</math> * <math>(-0) + (-0) = -0</math> * <math>x \cdot (-0) = -0</math> (x>0) * <math>x + (-0) = x</math> == 自然科学 == 在[[气象学]]中,处于统计学的原因,−0常常用来表示一个低于零度却又不足以约分成-1的温度(无论[[华氏温标]]还是[[摄氏温标]]),比如−0.2度,它不能被列为零度因为零度显然不会小于零。然而低于零度的天数往往是比较冬季寒冷程度的一个基本统计数据,所以它并不能被忽略。不过它又没有低到能够约分为-1度,所以就被记录为−0度。{{请求来源||time=2022-12-10}} 在[[统计力学]]中,一个系统可能会有负的绝对温度,但是和直觉相反,这并不是极端寒冷,反而是极端炎热,比任何一个正的温度都要高(意指−0=無限)。在相关文献裡,−0就是最高的温度。<ref>{{cite book|first1=Charles|last1=Kittel|first2=Herbert|last2=Kroemer|title=Thermal Physics|url=https://archive.org/details/thermalphysics0000kitt|publisher=W. H. Freeman & Company|year=1980|isbn=0-7167-1088-9}}</ref> == 参考资料 == <references /> * {{cite web |url=http://msdn.microsoft.com/library/en-us/csspec/html/vclrfcsharpspec_4_1_6.asp |title=Floating point types |work=[[微软开发者网络|MSDN]] C#语言详述 |accessdate=2005年10月15日 |5= |deadurl=yes |archiveurl=https://web.archive.org/web/20060824085452/http://msdn.microsoft.com/library/en-us/csspec/html/vclrfcsharpspec_4_1_6.asp |archivedate=2006年8月24日 }} * {{cite web |url=http://msdn.microsoft.com/library/en-us/csspec/html/vclrfcsharpspec_7_7_2.asp |title=Division operator |work=[[微软开发者网络|MSDN]] C#语言详述 |accessdate=2005年10月15日 |deadurl=yes |archiveurl=https://web.archive.org/web/20051121104027/http://www.msdn.microsoft.com/library/en-us/csspec/html/vclrfcsharpspec_7_7_2.asp |archivedate=2005年11月21日 }} * {{cite paper |url=http://www.concentric.net/~Ttwang/tech/javafloat.htm |title=Java Floating-Point Number Intricacies |author=Thomas Wang |date=2000年3月 |version= |deadurl=yes |archiveurl=https://web.archive.org/web/20050921090806/http://www.concentric.net/~Ttwang/tech/javafloat.htm |archivedate=2005-09-21 |access-date=2007-07-07 }} * {{cite web | url=http://www2.hursley.ibm.com/decimal/dcspec.html | title=Specification | work=General Decimal Arithmetic: Encoding Strawman 4d, version 0.96 | accessdate=2005年10月16日 | archive-date=2012年2月17日 | archive-url=https://www.webcitation.org/65WOW1d3x?url=http://www.ibm.com/us/en/ | dead-url=no }} — 一个包含有负零的“十进制”浮点数规范 == 延伸阅读 == * {{cite web |url=http://developers.sun.com/prodtech/cc/articles/sign.html |title=Fortran 95 SIGN Change |author=Michael Ingrassia |work=Sun Developer Network |accessdate=2005年10月15日 |archive-date=2012年2月17日 |archive-url=https://www.webcitation.org/65WOWdQKb?url=http://developers.sun.com/solaris/articles/sign.html |dead-url=no }}——[[Fortran]]语言中(Fortran 95)<code>SIGN</code> 函数的一个变化以适应负零 * {{cite web |url=http://msdn.microsoft.com/library/en-us/script56/html/js56jscondatatype.asp |title=JScript data types |work=[[微软开发者网络|MSDN]] JScript |accessdate=2005年10月16日 |deadurl=yes |archiveurl=https://web.archive.org/web/20051110160645/http://msdn.microsoft.com/library/en-us/script56/html/js56jscondatatype.asp |archivedate=2005年11月10日 }}——JScript的浮点数从定义上即包括负零 * {{cite web |url=http://www.javaworld.com/javaworld/jw-10-1996/jw-10-hood.html |title=A look at the floating-point support of the Java virtual machine |work=Javaworld |accessdate=2005年10月16日 |archive-url=https://www.webcitation.org/65WOXr3Fo?url=http://www.javaworld.com/javaworld/jw-10-1996/jw-10-hood.html |archive-date=2012年2月17日 |dead-url=yes }}——[[Java虚拟机]]中负零的表示法 * {{cite paper |url=http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm |title=Comparing floating point numbers |author=Bruce Dawson |date= |access-date=2007-07-07 |archive-date=2007-07-03 |archive-url=https://web.archive.org/web/20070703085415/http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm |dead-url=no }}——在比较浮点数时是怎么处理负零的 * {{cite web |url=http://www.fourmilab.ch/documents/univac/minuszero.html |title=Minus Zero |author=John Walker |work=UNIVAC Memories |accessdate=2005年10月17日 |archive-date=2012年2月17日 |archive-url=https://www.webcitation.org/65WOYUm57?url=http://www.fourmilab.ch/documents/univac/minuszero.html |dead-url=no }}——[[UNIVAC]]® 1100 系列电脑中的[[二进制反码]] == 参见 == *[[0]] *[[数学]] *[[计算机科学]] *[[编程语言]] [[Category:整数|-]] [[Category:计算机科学]] [[Category:零]]
该页面使用的模板:
Template:Cite book
(
查看源代码
)
Template:Cite paper
(
查看源代码
)
Template:Cite web
(
查看源代码
)
Template:Multiple issues
(
查看源代码
)
Template:NoteTA
(
查看源代码
)
Template:请求来源
(
查看源代码
)
返回
−0
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息