當前位置:妙知谷 >

母嬰教育 >學習交流 >

如何把二進制數轉化為十進制數

如何把二進制數轉化為十進制數

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

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

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

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

按位記數法

(01)在本例中,我們將把二進制數10011011轉換為十進制數。從左到右地列出2的冪。從20開始,結果為"1"。每向右移一位,就對其指數加1。列出的元素個數應等於二進制數的位數。在本例中,10011011有8位數字,因此應列出的8個元素:128, 64, 32, 16, 8, 4, 2, 1

如何把二進制數轉化為十進制數

(02)把二進制數上的每一位數字對應地寫到列表下方。

如何把二進制數轉化為十進制數 第2張

(03)從右邊開始,畫出線條,用於把二進制數中連續的數字和其上方的2的冪連接起來。從右邊開始,畫一條線,把二進制數的第一個數字和2的第一個冪值連接起來。然後,畫一條線,把二進制數的第二個數字和2的第二個冪值連接起來。依次類推,畫出線條把每一個數字和對應的冪值連接起來。

如何把二進制數轉化為十進制數 第3張

(04)掃描二進制數中的每一位數字。如果對應的數字為1,則在線條下方寫下對應的2的冪值。如果對應的數字為0,則在線條下方寫下0。

如何把二進制數轉化為十進制數 第4張

(05)把線條下方的數相加。所得總和為155。這就是二進制數10011011對應的十進制數。或者寫成基數下標的形式:

如何把二進制數轉化為十進制數 第5張

(06)以上方法熟悉後,你將記得2的每一個冪值,因此可以省略第1步。

如何把二進制數轉化為十進制數 第6張

雙倍法

(01)該方法不需要使用冪運算。因此,當你通過心算轉換較大的數值時,該方法更簡單,因為你只需要記下部分和。

(02)從給定二進制數最左邊的數字開始。對於每一位數字,你向右移動,對之前所得總和乘以2並加上當前數值。例如,把1011001轉換為十進制數,我們將採用如下步驟:

如何把二進制數轉化為十進制數 第7張

(03)1011001 → 0 * 2 + 1 = 1

如何把二進制數轉化為十進制數 第8張

(04)1011001 → 1 * 2 + 0 = 2

如何把二進制數轉化為十進制數 第9張

(05)1011001 → 2 * 2 + 1 = 5

如何把二進制數轉化為十進制數 第10張

(06)1011001 → 5 * 2 + 1 = 11

如何把二進制數轉化為十進制數 第11張

(07)1011001 → 11 * 2 + 0 = 22

如何把二進制數轉化為十進制數 第12張

(08)1011001 → 22 * 2 + 0 = 44

如何把二進制數轉化為十進制數 第13張

(09)1011001 → 44 * 2 + 1 = 89

如何把二進制數轉化為十進制數 第14張

(10)和按位記數法一樣,本方法經調整後也能把基於任何基數的數轉換為十進制數。在這裏採用雙倍法因為這裏給定的數是以2為基數的。如果給定的數是基於不同的基數,則應本方法中的2換成對應的基數。例如,如果給定數是以37為基數,則你在計算時應把*2換為*37。而最終的結果則總是對應的十進制數(基數10)。 :)

如何把二進制數轉化為十進制數 第15張

特別提示

練習。嘗試轉換二進制數11010001、11001和11110001。它們對應的十進制數分別是209、25和。

Microsoft Windows上的計算器能幫助你完成不同數制中的數的轉換,但作為一名程序員,你應該理解並掌握轉換的方法。計算器中的轉換選項可以通過選擇"查看"菜單中的"科學型"(或 "程序員")。在Linux上,你可以使用galculator。

這裏使用的是無符號二進制數,而非有符號數、浮點數或定點數。

  • 文章版權屬於文章作者所有,轉載請註明 https://miaozhigu.com/jy/jiaoliu/2e600m.html