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

2021-07-10 06:36:37 字數 1805 閱讀 9314

轉了這篇文章,完全是群裡討論計算機無法精確表示小數才想找一下原因的。究其原因就是十進位制小數無法用2進製表示(0.5什麼的可以表示)

大學也學過,不過已經忘了。

一、二進位制數轉換成十進位制數

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

例1105把二進位制數110.11轉換成十進位制數。   

二、十進位制數轉換為二進位制數

十進位制數轉換為二進位制數時,由於整數和小數的轉換方法不同,所以先將十進位制數的整數部分和小數部分分別轉換後,再加以合併。

1. 十進位制整數轉換為二進位制整數

十進位制整數轉換為二進位制整數採用"

除2取餘,逆序排列"法。具體做法是:用2去除十進位制整數,可以得到乙個商和餘數;再用2去除商,又會得到乙個商和餘數,如此進行,直到商為零時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有效位,依次排列起來。

例1107把 (173)10 轉換為二進位制數。

解:

2.十進位制小數轉換為二進位制小數

十進位制小數轉換成二進位制小數採用"

乘2取整,順序排列"法。具體做法是:用2乘十進位制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數 部分,又得到乙個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,或者達到所要求的精度為止。 

然後把取出的整數部分按順序排列起來,先取的整數作為二進位制小數的高位有效位,後取的整數作為低位有效位。

【例1108】把(0.8125)轉換為二進位制小數。

解:

例1109

(173.8125)10=( )2

解:由[例1107]得(173)10=(10101101)2

由[例1108]得(0.8125)10=(0.1101)2

把整數部分和小數部分合併得: (173.8125)10=(10101101.1101)2

參考: 

十進位制小數轉換成二進位制小數採用"乘2取整,順序排列"法。具體做法是:用2乘十進位制小數,可以得到積,將積的整數部分取出,再用2乘餘下的小數部分,又 得到乙個積,再將積的整數部分取出,如此進行,直到積中的整數部分為零,或者整數部分為1,此時0或1為二進位制的最後一位。或者達到所要求的精度為止。 

然後把取出的整數部分按順序排列起來,先取的整數作為二進位制小數的高位有效位,後取的整數作為低位有效位。  

十進位制小數轉二進位制 

如:0.625=(0.101)b 

0.625*2=1.25*****=取出整數部分1 

0.25*2=0.5*****===取出整數部分0 

0.5*2=1**********取出整數部分1 

再如:0.7=(0.1 0110 0110...)b 

0.7*2=1.4*****===取出整數部分1 

0.4*2=0.8*****===取出整數部分0 

0.8*2=1.6*****===取出整數部分1 

0.6*2=1.2*****===取出整數部分1 

0.2*2=0.4*****===取出整數部分0  

0.4*2=0.8*****===取出整數部分0 

0.8*2=1.6*****===取出整數部分1 

0.6*2=1.2*****===取出整數部分1 

0.2*2=0.4*****===取出整數部分0

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

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

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

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

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

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