−零
− 零抑是負零代表零顛倒反數,等於零。特定情形下,− 零可能有特殊的意義。 佇電腦科學當中,− 零主要用來表達浮點數,佮佇咧某一寡時陣對整數進行有符號數處理。
佇普通應用中,− 零有可能被用來表示一个會當四捨五入做零的負數,或者是一个對負方向上趨佇零的數量傷過去。
佇統計力學中,特定的系統咧反轉分布的狀態之下,會當予人認為擁有 − 零的絕對溫度。
電腦科學
表示法
佇咧對整數的一个 + 七位元的符號數值表示法中,負空是用二進位代碼一千石表示的。佇八位元一補數當中,負空是用二進位代碼一千一百一十一刣一千一百十一表示,毋過二補數表示法則無負零的概念。佇咧 IEEE 七百五十四二進位浮點數算術標準中,指數佮尾數共零、符號做一的數就是負零。
佇咧 IBM 的普通十進位算數編碼規範當中,運用十進位來表示浮點數。遮負零被表示為指數為編碼內任意合法數值、所有的數字攏替零、符號位元為一的數。
性質佮處理
佇咧程式語言,比如講 C、C #、C + + 和 Java,一个表達式的結果可能是負零(譬如講對一个負數算欲滿的時陣的結果), 現此時負零佮正零是等效的。所以一个簡單的比較袂當確定一个數是負零。確定一个數是負零的辦法包括:
一 . 使用 IEEE 七仔五十四以中定義的 ` copysign ( ) ` 函式複製零的符號到任意非零的數字。 二 . 用一个正數來除以這个零—— 得著的無窮會當反映出零的符號
- $ { \ frac { x } { + 零 } }=+ \ infty $ ( x > 零 )
- $ { \ frac { x } { 板零 } }=-\ infty $ ( x > 零 )
三 . 佇咧 Java 中,用 ` Double ` 類中的 equals 方法,會當分辨出正零佮負零,比如講:
- Double negativeZero=new Double ( 鋪零交易 ) ;
negativeZero . equals ( 鋪零交易 ) ; / / 結果:真 negativeZero . equals ( 空吱吱 ) ; / / 結果:假四 . 佇咧 C 語言內底,使用一个依賴佇咧本地硬體表示法的無方便的辦法。例:` * ( int * ) & var==零 x 八千刀 `(var 佇咧 IEEE 七百五十四中編碼單精度)。
其他對負零的運算有:
- $ { \ frac { 板零 } { x } }=板零 $ ( x > 零 )
- $ { \ frac { 板零 } { x } }=+ 零 $ ( x < 零 )
- $ { \ frac { + 零 } { x } }=板零 $ ( x < 零 )
- $ { \ frac { 板零 } { + \ infty } }=板零 $
- $ { \ frac { 板零 } {-\ infty } }=+ 零 $
- $ { \ frac { + 零 } {-\ infty } }=板零 $
- $ ( 板零 ) \ cdot ( 板零 )=+ 零 $
- $ ( 板零 )-( + 零 )=板零 $
- $ ( 板零 )-( 板零 )=零 $
- $ ( + 零 ) + ( 板零 )=零 $
- $ ( 板零 ) + ( 板零 )=板零 $
- $ x \ cdot ( 板零 )=板零 $ ( x > 零 )
- $ x + ( 板零 )=x $
自然科學
佇氣象學中,就是處理統計學的原因,− 零定定用來表示一个較低零度煞閣無夠約分做-一的溫度(無論華氏溫標抑是攝氏溫標), 比如講 − 空九二度,伊袂當予人列做零度因為零度顯然袂變零去。毋過低於零度的天數往過是較冬季寒冷程度的一个基本統計資料,所以伊並袂使予人無注意著。毋過伊閣無低著會當約分做-一度,所以就予人記錄講 − 零度。
佇統計力學中,一个系統可能會有負的絕對溫度,但是佮直覺相反,這並毋是極端寒冷,顛倒是極端炎熱,比任何一个正的溫度攏較懸 ( 意指 − 零=無限 )。佇相關文獻內底,− 零就是上懸的溫度。
參考資料
- Floating point types . MSDN C # 語言詳述 . [二空空五年十月十五] .(原始內容存檔佇二空空六年八月二四).
- Division operator . MSDN C # 語言詳述 . [二空空五年十月十五] .(原始內容存檔佇二空空五年十一月二一).
- Thomas Wang . Java Floating-Point Number Intricacies . 二空空空年三月 [二千空七孵七孵七] .(原始內容存檔佇兩千空五鋪九九陽二十一).
- Specification . General Decimal Arithmetic : Encoding Strawman 四 d , version 空九九六 . [二空空五年十月十六] .(原始內容存檔佇二空一二年二月十七號). —一个包含有負零的「十進位」浮點數規範
延伸閱讀
- Michael Ingrassia . Fortran 九十五 SIGN Change . Sun Developer Network . [二空空五年十月十五] .(原始內容存檔佇二空一二年二月十七號). —— Fortran 語言內底(Fortran 九十五)` SIGN ` 函式的一个變化以適應負零
- JScript data types . MSDN JScript . [二空空五年十月十六] .(原始內容存檔佇二空空五年十一月十號). —— JScript 的浮點數對定義上就包括負零
- A look at the floating-point support of the Java virtual machine . Javaworld . [二空空五年十月十六] .(原始內容存檔佇二空一二年二月十七號). —— Java 虛擬機器當中負零的表示法
- Bruce Dawson . Comparing floating point numbers . [二千空七孵七孵七] .(原始內容存檔佇兩千空七堵七堵三). —— 佇較浮點數時間是按怎處理負零的
- John Walker . Minus Zero . UNIVAC Memories . [二空空五年十月十七號] .(原始內容存檔佇二空一二年二月十七號). —— UNIVAC® 一千一百系列電腦中的一補數
參見
- 零
- 數學
- 電腦科學
- 程式語言