2012-03-10 63 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