2012-03-10 60 views
1

對不起,以前沒有這麼明確的問題, 我應該問我的疑問,而不是僅僅發佈問題。以二進制表示浮點數和整數

只是爲了澄清,從而可以說這是一個3位浮子和一個3位的整數,所以對於int其

2^3, [_ _ _ _ ], ex: 8=[1 0 0 0]. 

約浮子會是什麼樣 [ _ _ _ _ . _ _ _ _] 例I可以表示8.5作爲

[1 0 0 0. 1 0 0 0] 

是我寫的是正確的,我知道要怎麼表現給予了整數值多少位應該,但對於浮動,是前後小數點後相同的位數。

+0

您的整數示例是四位。你可以用任何你想要的方式表現任何東西。請告訴我們:你真的想做什麼?不是你期望如何去做> – 2012-03-10 03:21:09

+0

我想知道如何表示一個3位浮點數。我雖然是3位[我有點確實看到我有4位],因爲第一個是2^0,第二個2^1,依此類推到2^3。所以我只看了最後一個2^3,3位。 – Quark 2012-03-10 03:23:51

回答

2

3位浮點必須具有最多3位,這使得它即使不是不可能,也是完全不切實際的。這是爲什麼從浮點表示(IEEE-754)的定義可知,浮點數由有限數組成,它可以是基數2(二進制)或基數10(十進制)。每個有限數由三個整數描述:s =符號(零或一),c =有效數(或'係數'),q =指數。這意味着你的情況下你有一個符號位(位1)有效位(位2)和指數位(位3)。這個範圍是無用的。

由於浮點數是大家提前同意的預先確定的固定長度,所以您不要串聯三位數字,至少在您的意思上是這樣。

有如何做推廣在GSL源浮點例子:

http://www.gnu.org/software/gsl/ 

十進制數也可以通過其他格式,如表示:BCD

http://en.wikipedia.org/wiki/Binary-coded_decimal 

最後一點:你可以讓3位FP編號,然後將它們串在一起,如果你想要更大的數字。他們不再是3位:6位12位等​​。

+0

+1關於真正的答案 – noncom 2013-01-11 18:21:38