十進位制轉換成二進位制和十六進製制的方法
十進位制數轉換成二進位制數-般分為兩個步驟,即整數部分的轉換和小數部分的轉換。
(1 )整數部分的轉換
*除2取餘法:*這種方法是由於d10=n2 =dn-1x2n-1十dn-2x2n-2 +… d1x21十d0x20,所以具體方法是把給定的十進位制整數除以2,取其餘數作為二進位制整數最低位的係數do,然後繼續將整數部分除以2,所得餘數作為二進位制整數次低位的係數d1,一直重複下去,最後可以得到二進位制整數部分。
例:將(327)10轉換成二進位制數
所以,(327)10=d8 d7 d6 d5 d4 d3 d2 d1 d0=(101000111)2。
此方法可擴充套件為陳r取餘法。如將r設為16,則可將十進位制整數轉變為十六進製制整數。
*減權定位法:*因為d10= n2=dn-1x2n-1十dn-2x2n-2 +… d1x21十d0x20,所以二進位制多項式中的每一項都有自己的權值。若該項系數值為d f0,則該項值為0,否則d i應為1。根據這一對應關係,可提出減權定位的轉換方法:將十進位制數依次從二進位制高位權值進行比較:若夠減則對應位d f1,減去該位權值後再往下比較;若不夠減則對應值d f0,越過該位與低一位的權值比較,如此進行直到餘數為0為止。
例如:將(327)10 轉換成二進位制數。因為512(29)>327>256(28),所以從權值256對應值開始比較。
所以,(327)10=(101000111)2 。:
(2)小數部分的轉換
轉換的方法是採用乘2取整數表示法。由於d10=d-1x2-1十d-2x2-2 +…d- mx2-m,所以具體方法是把給定的十進位制小數乘以2,取其整數部分作為二進位制小數的小數點後的第- -位係數;然後再將乘積的小數部分繼續剩以2,取所得積的整數部分作為小數後的第二位係數;依次重複做下去,就可以得到二進位制小數部分。
例:將(0. 8125) 10轉換成二進位制小數。
所以,(0. 8125)10=d0 d1 d2 d3 d4=(0.1101)2。
在計算中可以按照所需的小數點位數,取其結果位近似值。
此方法可以擴充套件為乘r取整法.如將r變為16,則可將十進位制小數部分直接變為十六進製制小數。
十進位制轉換成二進位制和十六進製制方法一樣。
十六進製制轉換成十進位制 二進位制
十六進製制轉二進位制 public string htob string a 二進位制轉十六進製制 public string btoh string a 任意進製數轉為十進位制數 public string tod string a,int b return string.valueof r 將十...
通過移位把十進位制轉換成二進位制和十六進製制
這個試題可以充分考到個人對以為和與的操作 char int to bit long data else return temp bit intto16 char int to 16 unsigned long data return buffer 我對上面的程式做了一定的改進,比較容易理解 char...
十進位制轉換成二進位制,八進位制,十六進製制
好久沒有寫過c 了。看到以前課本上有這樣一道題 列印整數1到156的二進位制 八進位制 十六進製制和十進位制對照表。很基礎的知識,權當溫習下知識。如下 author finux time sat 20 sep 2008 02 25 03 pm cst filename main.cpp descri...