複製鏈接
請複製以下鏈接發送給好友

-0

鎖定
0是介於-1和1之間的整數。0既不是正數也不是負數,而是正數和負數的分界點。0沒有倒數,0乘任何數都等於0。0不能作為分母或者除數
−0代表負零,一個計算機科學中存在的數字。主要用來表達浮點數和在某些對整數進行有符號數處理。在數學中,一般沒有正零或負零的概念,−0在邏輯上表示0的相反數,等於0。
在普通應用中,-0有可能被用來表示一個可以四捨五入為零的負數,或者是一個從負方向上趨近於零的數。在統計力學中,特定的系統在反轉分佈的狀態下,可以被認為擁有-0的絕對温度。
中文名
0
外文名
zero
別    名
表    示
一種對人聊天中藐視的感情
代    表
0

-0表示法

在對於整數的1+7比特的符號數值表示法中,負零是用二進制代碼10000000表示的。在8比特二進制反碼中,負零是用二進制代碼11111111表示。在IEEE 754二進制浮點數算術標準中,指數和尾數為零、符號比特為一的數就是負零。
在IBM的普通十進制算數編碼規範中,運用十進制來表示浮點數。這裏負零被表示為指數為編碼內任意合法數值、所有係數均為零、符號比特為一的數。

-0性質與處理

在編程語言中,例如C,C#,C++和Java,一個表達式的結果可能是負零(比如對一個負數算術下溢時的結果),此時負零和正零是等效的。因此一個簡單的比較不能夠確定一個數是負零。確定一個數是負零的辦法包括:
使用IEEE 754中定義的copysign()函數複製零的符號到任意非零的數上。
用一個正數來除以這個零——得到的無窮能夠反映出零的符號
在Java中,用Double類中的equals方法,能夠分辨出正零和負零,例如:
Double negativeZero = new Double(-0.0);
negativeZero.equals(-0.0); // 結果:真
negativeZero.equals( 0.0); // 結果:假
在C語言中,使用一個依賴於本地硬件表示法的不方便的辦法。例: *(int *)&var == 0x80000000 (var在IEEE 754中編碼單精度)。