十進位制小數部分轉化為2進製 為什麼相乘??

2021-10-21 22:40:58 字數 856 閱讀 9712

10進製——>2進製

整數部分:重複相除2的

小數部分:重複相乘2的

為什麼不一樣???

查了好久才發現原來本質上是一樣的…

假設乙個十進位制數 b

其對應的二進位制數為 b= a20+b21+c22+.d2…

這個時候我們將10進製轉為2進製的時候實際上就是求abcd的值

那麼此時當用b除2的時候 相當對a20+b21+c22+.d2…這個等式除2

相當於 a20/2 又因為a是2進製數不是0就是1 ,所以必然有乙個餘數 a存在。而等式剩下的部分b21+c22+.d2… 對應的2的冪也應該-1. 那麼b/2的無限除2就能夠得到abcd所有的數。

十進位制數的小數此時用c表示c是乙個小數。同理c也等於乙個二進位制的小數

c=a2-1+b2-2+c2-3+d…

會發現如果我們想要乙個得到這個abcd…的話 必須要不停的乘2才能把每乙個2^-x次方化解。

同時由於越靠前越大所以不用倒敘直接就能得到2進製數abcd…

**為什麼不能準確用2進製數準確表示10進製的小數部分?

整數部分:

因為整數除2能出盡

小數部分:

乙個小數乘以2不一定能得到,乙個小數部分是0的整數。

以0.2為例子:

0.2x2=0.4…0

0.4x2=0.8…0

0.8x2=1.6…1

0.6x2=1.2…1

0.2x2=0.4…0..

...又回來了 所以不能夠準確表示

原來都是一樣的

十進位制小數轉化為二進位制小數

轉了這篇文章,完全是群裡討論計算機無法精確表示小數才想找一下原因的。究其原因就是十進位制小數無法用2進製表示 0.5什麼的可以表示 大學也學過,不過已經忘了。一 二進位制數轉換成十進位制數 由二進位制數轉換成十進位制數的基本做法是,把二進位制數首先寫成加權係數展開式,然後按十進位制加法規則求和。這種...

十進位制小數轉化為二進位制小數

一 二進位制數轉換成十進位制數 由二進位制數轉換成十進位制數的基本做法是,把二進位制數首先寫成加權係數展開式,然後按十進位制加法規則求和。這種做法稱為 按權相加 法。例1105把二進位制數110.11轉換成十進位制數。二 十進位制數轉換為二進位制數 十進位制數轉換為二進位制數時,由於整數和小數的轉換...

十進位制小數轉化為二進位制小數

由二進位制數轉換成十進位制數的基本做法是,把二進位制數首先寫成加權係數展開式,然後按十進位制加法規則求和。這種做法稱為 按權相加 法。例1105把二進位制數110.11轉換成十進位制數。十進位制數轉換為二進位制數時,由於整數和小數的轉換方法不同,所以先將十進位制數的整數部分和小數部分分別轉換後,再加...