新書推薦 2 第 3 節 二進位的速記和轉換

Mondo 科技 更新 2024-01-31

本節內容:二進位。

為什麼電子計算機使用二進位?:電子計算機電路只有低和高兩種狀態,分別代表二進位數 0 和 1。

二進位的簡寫形式:計算機中的資料使用二進位數。 但是二進位寫起來不方便,所以我們通常使用十六進製作為二進位的簡寫形式來表示二進位數。

鹼基之間的轉換:4 位二進位數表示為 1 位十六進製數 0 f。 4 位二進位數表示 1 位十進位數 0 9。 二進位或十六進製數使用位權重方法轉換為十進位數。 十進位數使用除法轉換為二進位數或十六進製數。

我們可能有這樣的想法,如果計算機首先在十進位系統中發明,而不必來回轉換,那就太好了,而且我們對十進位系統非常熟悉。

也有人會說二進位有多好,簡單高效。 事實上,這種說法是錯誤的。 十進位算術邏輯運算比二進位運算效率高得多。 畢竟,要計算的步驟要少得多。

事實上,真正使用二進位的原因是電子計算機受到計算機物理硬體的約束。 電子計算機電路只有0和1兩種穩定狀態,二進位是電子計算機最合理的選擇。 而且,二進位算術邏輯運算與十進位算術邏輯運算相同,不影響計算結果的正確性,但二進位算術邏輯運算的效率低於十進位系統。 由於電子計算機的計算速度足夠快,可以彌補效率低下的缺點。 因此,儲存在計算機中的任何資料和指令都由二進位數 0 和 1 組成。

事實上,電子計算機的理論基礎早在100多年前就已經完成,但當時受到材料和工藝的制約。 當電子管和積體電路被發明出來時,有了合適的材料,電子計算機自然而然地被發明出來了。

量子計算機肯定不會再使用二進位,因為量子屬性可以同時具有多種狀態,而量子計算機肯定會比只有 0 和 1 的二進位高效得多。 然而,目前量子計算機仍然受到製造工藝、材料和成本的制約,一旦這些問題得到解決,量子計算機的普及和應用肯定可以迅速實現。

寫十進位數 0 15:使用 4 位二進位數

二進位數寫起來比較麻煩,可以縮寫為二進位形式,即十六進製表示。

寫十進位數 0 15:使用十六進製數

0 1 2 3 4 5 6 7 8 9 a b c d e f。

顯然,十六進製數字更容易書寫,效率更高。 在未來的學習過程中,我們經常會用到偵錯程式、編譯器、記憶體分析工具、二進位文字工具等工具,都用十六進製來表示二進位數。

二進位和十六進製之間的轉換

表 2-1 二進位和十六進製系統之間的轉換。

二進位和十進位系統之間的轉換

表2-2 二進位和十進位系統之間的轉換

如表2-1和表2-2所示,每個十進位數或十六進製數對應乙個四位數的二進位數。

十進位數 0 9 對應乙個 4 位二進位數,稱為 8421 BCD 碼,我們將在第 4 章通用編碼規則中詳細解釋 BCD 碼。

二進位數到十進位數

表 2-3 二進位數。

將上述二進位數轉換為相應的十進位數。

演算法:位權重表示法將 n 位二進位整數轉換為十進位數(不考慮正數和負數)。

dec=(dn-1×2n-1)+(dn-2×2n-2)+.d1 21)+(d0 20)注:公式中的n表示二進位位數,10110101b=1*27+0*26+1*25+1*24+0*23+1*22+0*21+1*20=128+32+16+4+1=181d(d代表十進位),可以使用查表的方法得到2的冪。

表 2-4 2 位的位權重。

十進位數到二進位數

演算法::十進位數重複除以 2,每次的餘數記錄為當前二進位數字的值,直到。

商為 0,直到為 0。 例如,十進位數 57 轉換為二進位數。

表2-5 十進位數到二進位除法的轉換

二進位數111001是通過將餘數系列中的數字倒排列得到的,因為intel儲存的二進位數字總是8或8的倍數,所以前面空白處的二進位數0和57是0011 1001b。

十六進製數到十進位數

表2-6 十六進製數轉換為二進位數。

演算法::位權重表示法將 n 位無符號十六進製整數轉換為十進位數(無論正數和負數如何),dec=(dn-1 16n-1)+(dn-2 16n-2)+公式 d1 161) + (d0 160) 中的 n 表示十六進製數字,16a794h=1*165+6*164+10*163+7*162+9*161+4*160=

表2-7 十六進製位的位權重

十進位數到十六進製數

演算法:

十進位數重複除以 16,每次的餘數記錄為當前十六進製數字的值,直到。

商為 0,直到為 0。 例如,十進位數 422 轉換為十六進製數。

表2-8 十進位數與十六進製數的劃分

十六進製數 1a6h 是通過重新排列餘數序列中的數字而得到的,因為儲存在 Intel 中的二進位數字始終是 8 或 8 的倍數,因此前面空白處的十六進製數 0,422 是 01a6h。

實踐。 1.用十六進製表示以下二進位數(不允許使用計算器和計算)。

2.用二進位表示以下十六進製數(不允許使用計算器和計算)。

487fdc120ace69b953fe。

3.將以下二進位數轉換為十進位正整數(先使用演算法,然後使用計算器檢查)。

00100111b 101101101111b 01100001b

4.將下面的小數正整數轉換為二進位數(先使用演算法,然後使用計算器檢查)。

121d 2345d 13124d 121798d

5. 將以下十六進製正整數轉換為十進位數(先使用演算法,然後用計算器檢查)。

87dafh 875b3fh 7a8cbffh 1234h

6.將下面的十進位正整數轉換為十六進製數(先使用演算法,然後使用計算器檢查)。

412434d 3643d 643262d 345d

本文節選自程式設計大師系列教材《x86組合語言基礎教程》。

相關問題答案

    如何將十進位轉換為二進位

    十進位到二進位,如何轉換?有兩種方法可以做到這一點 直接計算和功率分配轉換 直接計算公式 整數除法反轉為餘數,十進位乘法向前捨入。那麼如何確定某個基數呢?右多少?這很簡單什麼是基本系統,右邊是多少。例如,十進位權重為 ,二進位權重為 ,依此類推。然後,當涉及到具體計算時,整數和小數是分開計算的。整數...

    如何將十進位轉換為二進位

    將十進位轉換為二進位是計算機程式設計中的常見任務,也是理解計算機如何處理資料的關鍵步驟。以下是將十進位數轉換為二進位數的步驟 .找出最大的二進位位,它不超過給定的十進位數。假設這個二進位位是 n,那麼它的值是 n 十進位數。.將此二進位位設定為 ,將其餘二進位位設定為 。.從給定的十進位數中減去此二...

    探索 5 的二進位轉換 如何得出 101?

    本文將通過詳細的步驟講解如何將十進位數 轉換為二進位數 ,並帶領讀者了解二進位轉換的原理和方法。一 引言。二進位是電腦科學和數字電子學的基礎,它使用 和 來表示數值。了解如何將十進位數轉換為二進位數對於深入研究這些領域的習非常重要。本文將以 為例,詳細解釋如何將十進位數 轉換為二進位數 。第二,轉換...

    你如何計算 97 的二進位?看完就知道了!

    秋冬入住挑戰 二進位是計算機中最基本的數字系統,它只有兩個數字, 和 。在二進位中,每個位代表 的冪。例如,最右邊的一位代表 的 次方,第二位數字代表 的 次方,第三位數字代表 的第二次冪,依此類推。要將十進位數轉換為二進位數,我們可以使用以下步驟 .將給定的十進位數除以 得到商和餘數。.記錄其餘部...

    二進位和十六進製的計算機世界是數字的舞蹈

    在電腦科學領域,二進位和十六進製是兩個非常重要的數字系統。它們在計算機內程式設計師之間的資料處理和通訊中起著關鍵作用。本文將簡要介紹這兩種數字系統,以及它們在電腦科學中的應用。二進位 計算機的基礎 二進位,也稱為以 為基數的計數系統,是計算機在內部處理資訊的基本方式。在二進位系統中,只有兩個數字 和...