二進制轉為十進制的兩種方法


二進制 (基數為2數字系統中有兩個可能值,在每一位上,通常表示為0或1。相反,在十進制 (基數為10數字系統中,在每一位上,有10個可能值 (0,1,2,3,4,5,6,7,8, 或9)。

在使用不同的數字系統時,為了避免混亂的產生,可將基數標記在某個數的下標位置。例如,可以把二進制數標明為 "基數為2"的數,即寫作100111002。而十進制數156可寫作15610,並讀作"以10為基數的一百五十六"。

因為二進制系統是電子計算機的內部語言,因此真正的程序員應該掌握如何把二進制數轉換為十進制數。而如果首先學習把十進制數轉換為二進制數則相對更困難。

注意:這里只討論數值的轉換而非ASCII代碼的轉換。

方法1:按位記數
  1. 以Convert from Binary to Decimal Step 1為標題的圖片
    1
    在本例中,我們將把二進制數100110112轉換為十進制數。從左到右地列出2的冪。從2 0開始,結果為"1"。每向右移一位,就對其指數加1。列出的元素個數應等於二進制數的位數。在本例中,10011011有8位數字,因此應列出的8個元素:128, 64, 32, 16, 8, 4, 2, 1
     
  2. 以Convert from Binary to Decimal Step 2為標題的圖片
    2
    把二進制數上的每一位數字對應地寫到列表下方。
     
  3. 以Convert from Binary to Decimal Step 3為標題的圖片
    3
    從右邊開始,畫出線條,用於把二進制數中連續的數字和其上方的2的冪連接起來。從右邊開始,畫一條線,把二進制數的第一個數字和2的第一個冪值連接起來。然后,畫一條線,把二進制數的第二個數字和2的第二個冪值連接起來。依次類推,畫出線條把每一個數字和對應的冪值連接起來。
     
  4. 以Convert from Binary to Decimal Step 4為標題的圖片
    4
    掃描二進制數中的每一位數字。如果對應的數字為1,則在線條下方寫下對應的2的冪值。如果對應的數字為0,則在線條下方寫下0。
     
  5. 以Convert from Binary to Decimal Step 5為標題的圖片
    5
    把線條下方的數相加。所得總和為155。這就是二進制數10011011對應的十進制數。或者寫成基數下標的形式:
     
  6. 以Convert from Binary to Decimal Step 6為標題的圖片
    6
    以上方法熟悉后,你將記得2的每一個冪值,因此可以省略第1步。
     
 
方法2:雙倍法
  1. 1
    該方法不需要使用冪運算。因此,當你通過心算轉換較大的數值時,該方法更簡單,因為你只需要記下部分和。
     
  2. 以Convert from Binary to Decimal Step 8為標題的圖片
    2
    從給定二進制數最左邊的數字開始。對於每一位數字,你向右移動,對之前所得總和乘以2並加上當前數值。例如,把1011001 2轉換為十進制數,我們將采用如下步驟:
     
  3. 以Convert from Binary to Decimal Step 9為標題的圖片
    3
    1011001 → 0 * 2 + 1 = 1
     
  4. 以Convert from Binary to Decimal Step 10為標題的圖片
    4
    1011001 → 1 * 2 + 0 = 2
     
  5. 以Convert from Binary to Decimal Step 11為標題的圖片
    5
    1011001 → 2 * 2 + 1 = 5
     
  6. 以Convert from Binary to Decimal Step 12為標題的圖片
    6
    1011001 → 5 * 2 + 1 = 11
     
  7. 以Convert from Binary to Decimal Step 13為標題的圖片
    7
    1011001 → 11 * 2 + 0 = 22
     
  8. 以Convert from Binary to Decimal Step 14為標題的圖片
    8
    1011001 → 22 * 2 + 0 = 44
     
     
  9. 以Convert from Binary to Decimal Step 15為標題的圖片
    9
    1011001 → 44 * 2 + 1 = 8910
     
  10. 以Convert from Binary to Decimal Step 16為標題的圖片
    10
    和按位記數法一樣,本方法經調整后也能把基於任何基數的數轉換為十進制數。在這里采用雙倍法因為這里給定的數是以2為基數的。如果給定的數是基於不同的基數,則應本方法中的2換成對應的基數。例如,如果給定數是以37為基數,則你在計算時應把*2換為*37。而最終的結果則總是對應的十進制數(基數10)。
     
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM