0 5轉換成二進位制

2021-09-20 21:32:27 字數 1260 閱讀 4767

感謝分享:

面試面的滿臉血淚,我真的是啥也不會的說……專業知識這段時間一直沒有看,實習的東西扔的時間又有點久……

定點化這種東西,無非是把乙個數字定點小數有幾位,整數有幾位。如(7,9)定點,則整數存成7位,小數存成9位。以3.5為例,整數部分是3,寫成7位二進位制自然是0000011,很簡單。

那小數0.5怎麼轉化成9位二進位制呢?

方法:乘2取整法,即將小數部分乘以2,然後取整數部分,剩下的小數部分繼續乘以2,然後取整數部分,剩下的小數部分又乘以2,一直取到小數部分 

為零為止.如果永遠不能為零,就同十進位制數的四捨五入一樣,按照要求保留多少位小數時,就根據後面一位是0還是1,取捨,如果是零,捨掉,如果是1,向入一位.換句話說就是0舍1入.讀數要從前面的整數讀到後面的整數,下面舉例:

例1:將0.125換算為二進位制 

得出結果:將0.125換算為二進位制(0.001)2 

分析:第一步,將0.125乘以2,得0.25,則整數部分為0,小數部分為0.25; 

第二步,將小數部分0.25乘以2,得0.5,則整數部分為0,小數部分為0.5; 

第三步,將小數部分0.5乘以2,得1.0,則整數部分為1,小數部分為0.0; 

第四步,讀數,從第一位讀起,讀到最後一位,即為0.001.

所以在這種情況下,0.5轉換成小數的過程如下。

0.5*2=1--------------------------------->0.5轉成9位小數為100000000.

如果是個比較奇怪的小數,比如0.4

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

0.4*2=0.8-------------------------0(最後一位)--------------後一位是1,四捨五入為入--------------------1

0.8*2=1.6-------------------------1

將檔案轉換成二進位制,再由二進位制轉換成檔案

首先引入命名空間 using system.io protected void page load object sender,eventargs e 將傳進來的檔案轉換成字串 待處理的檔案路徑 本地或伺服器 public string filetobinary string filepath st...

將檔案轉換成二進位制,再由二進位制轉換成檔案

首先引入命名空間 using system.io protected void page load object sender,eventargs e 將傳進來的檔案轉換成字串 待處理的檔案路徑 本地或伺服器 public string filetobinary string filepath st...

十六進製制轉換成二進位制

public static void main string args throws exception string strs newstring length int j 0 for int i 0 i str.length i else list.addall arrays.aslist st...