二进制用小数表示(老师有没有告诉你小数用二进制怎么表示)

也许中学老师会告诉5、10、20等等的十进制数字怎么化成二进制数字,但又没有老师告诉你怎么将十进制的0.1变成二进制的小数呢?,下面我们就来说一说关于二进制用小数表示?我们一起去了解并探讨一下这个问题吧!

二进制用小数表示(老师有没有告诉你小数用二进制怎么表示)

二进制用小数表示

也许中学老师会告诉5、10、20等等的十进制数字怎么化成二进制数字,但又没有老师告诉你怎么将十进制的0.1变成二进制的小数呢?

我们将一个十进制整数化为二进制是这样操作的:在十进制的计算法则中,将十进制数除以2,得到商和余数;把商除以2,得到商和余数;...重复下去,直到商为0。然后把每次得到的余数按倒序排列,就得到了二进制数字。比如6:

6÷2=3...03÷2=1...11÷2=0...16÷2=3...03÷2=1...11÷2=0...1

倒过来就是110。这就是二进制中的6了。

为什么要这样操作呢?这要从二进制变成十进制的方法谈起。一个二进制数abcdeabcde变成十进制数的方法是e 2d 22c 23b 24ae 2d 22c 23b 24a,这从二进制的计数规则就可以得出:其实就是说a,b,c,d,e分别代表着104,103,102,10,100104,103,102,10,100位,但是二进制的10就是十进制的2,所以就得出上面的公式。从二进制变十进制的方法就不难得出十进制的法则了,不断除以2,计算余数就分别可以得出a,b,c,d,e了。

整数还是挺好办的,那么小数怎么办呢?比如0.1=1100.1=110,而(10)10=(1010)2(10)10=(1010)2,所以有

(110)10=(11010)2(110)10=(11010)2

如果你熟悉二进制的计算,你直接可以在二进制的法则内算1101011010,就得出0.1的二进制表示啦。不过这是一种比较麻烦的方法,关键是我们大多数人都不熟悉二进制的计算。那怎么办呢?我们可以想一种迂回的方法。虽然在我们不懂二进制的具体计算细则,但是我们不难发现,在二进制里除以10还是很容易的,就跟十进制一样,同样是向左移动小数点而已。所以我们不妨先将十进制的小数不断乘以2,然后取整数部分,化为二进制整数,然后再不断除以二进制的10。

比如0.1

0.1×29=51.2(51)10=(110011)2110011÷109=0.0001100110.1×29=51.2(51)10=(110011)2110011÷109=0.000110011

也就是说十进制0.1表示为二进制大约为0.000110011。不难发现,这种操作是“永无止境”的,即十进制的有限小数0.1在二进制中是无限循环小数!这真是一个有趣的事实!

上述小数转换二进制的方法计算量未免还是有点大了。所以经过简化可以变成一个计算量比较小的“乘2取整”法:

对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。如此不断重复,直到小数部分为0或达到精度要求为止。第一次所得到为最高位,最后一次得到为最低位。

比如0.10.1×2=0.20.1×2=0.2,取整为0,小数为0.2;0.2×2=0.40.2×2=0.4,取整为0,小数为0.4;0.4×2=0.80.4×2=0.8,取整为0,小数为0.8;0.8×2=1.60.8×2=1.6,取整为1,小数为0.6;0.6×2=1.20.6×2=1.2,取整为1,小数为0.2;...开始陷入循环了。

不难得到二进制表示为0.000110011...,循环节为0011。其实,大多数十进制有限小数变成二进制的时候都是无限循环的,除了那些12n12n类型的小数。当然,不管怎么变,在十进制的无理数也不会变成二进制的有理数,反之亦然。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页