这是一个奇怪的我很困惑。我最近注意到在Gnu Octave提示符下,可以输入负零,如下所示:
octave:2> abomination = -0
它也记得它:
octave:3> abomination
abomination = -0
为了理智,负零确实等于常规零。但我也注意到这个标志还有一些其他的影响。像这样:
octave:6> 4 * 0
ans = 0
octave:7> 4 * -0
ans = -0
octave:8> 4 / 0
warning: division by zero
ans = Inf
octave:9> 4 / -0
warning: division by zero
ans = -Inf
可以看出,通过某些操作保留了标志。但我的问题是为什么。这似乎是对标准数学的彻底背离,其中零基本上没有符号。有这个有吸引力的数学属性吗?这在某些数学领域是否重要?
仅供参考:Matlab,以八度为模型,没有负零。任何使用它们的尝试都被视为常规零。
编辑: Matlab确实有负零,但它们不会显示在默认输出中。
答案 0 :(得分:30)
有符号零是IEEE-754格式的一部分,它们的语义完全由这些格式指定。它们变得非常有用,特别是在处理复杂平面切割和复杂平面的转换时(有关更多细节,请参阅W. Kahan关于该主题的许多着作,例如经典的“复杂基本函数的分支切割”,或多Ado about Nothing's Sign Bit“)。
简短版本:负数零通常是数值计算中的一件好事,而试图保护用户免于遇到它的程序通常会对它们造成伤害。 FWIW,MATLAB似乎也使用负零,但由于它使用主机的printf
例程打印数字,因此它们在Windows上显示与正零相同。
有关MATLAB中已签名零的更多详细信息,请参阅MATLAB论坛上的this discussion。
答案 1 :(得分:9)
IEEE-754浮点数也具有此属性。对于限制和无限可能会派上用场。例如, x →+∞的1 / x 的极限为0,但函数接近轴的正侧, x →-∞函数从负面接近,因此在这种情况下可以给出-0的限制。
答案 2 :(得分:7)
有符号零点回应数学 接近0的分析概念 以下作为片面限制,可能 用x→0-,x→0-或x→表示 ↑0。可以使用符号“-0” 非正式地表示负数 已经四舍五入为零。该 负零的概念也有一些 理论应用 统计力学等 学科。