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轉換成十進位制數。十進位制數轉換為二進位制數時,由於整數和小數的轉換方法不同,所以先將十進位制數的整數部分和小數部分分別轉換後,再加...