ieee754是現在公認的、最廣泛使用的浮點數轉換運算標準,為許多cpu與浮點運算器所採用。這個標準定義了表示浮點數的格式(包括負零-0)與反常值(denormal number)),一些特殊數值(無窮(inf)與非數值(nan)),以及這些數值的「浮點數運算子」;它也指明了四種數值捨入規則和五種例外狀況(包括例外發生的時機與處理方式)。
ieee 754規定了四種表示浮點數值的方式:單精確度(32位)、雙精確度(64位)、延伸單精確度(43位元以上,很少使用)與延伸雙精確度(79位元以上,通常以80位實現)。只有32位模式有強制要求,其他都是選擇性的。大部分程式語言都有提供ieee浮點數格式與算術,但有些將其列為非必需的。例如,ieee 754問世之前就有的c語言,現在有包括ieee算術,但不算作強制要求(c語言的float通常是指ieee單精確度,而double是指雙精確度)。
下面主要講述單精度(float),雙精度(double)和單精度一樣,使用例子來說明轉化過程。
(1)float a = -12.75; a的機器碼是多少?(採用ieee754標準)
不規範的表示:-12.75轉換整數部分:
12 = 8 + 4 = 1100(二進位制)轉換小數部分:
.75 = .5 + .25 = .11(二進位制)把兩部分組裝起來,變成標準化:
1100.11 = 1.10011*2^3轉換指數部分:
127 + 3 = 128 + 2 = 1000 0010(二進位制)故結果為:
1 1000 0010
100 1100 0000 0000 0000 0000(二進位制)
十六進製制表示:
0xc14c0000(十六進製制)
(2)二進位制1011 11101 110 0000 0000 0000 0000 0000轉化為float是多少?(採用ieee754標準)
sign:1 => negative(符號位)exponent:
0111 1101(二進位制) = 125(10進製)
減去偏置常數:125 - 127 = -2significand:
repersents:-1.75(十進位制)*2^(-2) = -0.4375
(3)double num = 10.5的二進位制是多少?
計算機組成原理 IEEE754標準
小數點的位置可以在一定範圍內移動,能擴大表數範圍。任一r進製數都能寫成 n 1 s re m 特別的,在計算機中浮點數的表示格式為 x 1 s 2e m 在這裡e指小數點的位置,m表示數的精度 計算機中規定用ieee754標準將浮點數規格化 當浮點數尾數非0時,最高有效位必須為1 譬如說 a 24 ...
計算機IEEE754轉浮點數
前幾天進行對乙個模組的研究,發現他串列埠傳輸過來的是16進製制數,而我們需要浮點數值,顯然需要一定的轉換方式,一開始我還以為是需要特殊的計算方法,後來這才接觸到了ieee這個浮點數的儲存方法 之前我的老師也沒接觸過這個,但是這是乙個儲存標準,以後用處應該會很多 eee 754 標準是ieee二進位浮...
IEEE754標準,從源頭講起
在學習計組的過程中,經常忘記一些細節。比如 符號位 規格化 等等概念。這幾天發覺,如果能夠從這些東西的背景去考慮問題的話,可能就不會有這麼多的遺忘了。浮點數的規格化浮點數的階碼一般使用移碼來表示,並不牽扯到規格化。規格化特指尾數的規格化。尾數可能是補碼或者原碼。當尾數m是原碼,只要滿足1 2 m 1...