C 程式設計入門 進製轉換 2

2021-09-30 13:50:06 字數 1628 閱讀 7894

進製數可以分為二進位制、八進位制、十進位制和十六進製制,不同的進製並不影響資料本身,因此資料可以在不同進製之間轉換。在我們現實的生活中都是採用的十進位制,就是滿10進1。對於二進位制、八進位制、十六進製制,無非就是滿2進1,滿8進1,滿16進1.

三次除以2計算得到餘數依次是0、1、1,將所有餘數倒序排列是1、1、0。所以十進位制的6轉換成二進位制數,結果是110。

二進位制轉化成十進位制要從右到左用二進位制位上的每個數去乘以2的相應次方,例如將最右邊第一位的數乘以2的0次方,第二位的數乘以2的1次方,第n位的數乘以2的n-1次方,然後把所有乘的結果相加,得到的結果就是轉換後的十進位制數。

如把乙個二進位制數01100100轉換為10進製,轉換方式如下。

0 * 2^0+ 0 * 2^1+ 1 * 2^2+ 0 * 2^3+ 0 * 2^4+ 1 * 2^5+ 1 * 2^6+ 0 * 2^7= 100

由於0乘以多少都是0,所以上述表示式也可以簡寫為如下方式。

1 * 2^2+ 1 * 2^5+ 1 * 2^6= 100

得到的結果100就是二進位制數01100100轉化後的十進位制數。

1.二進位制轉八進位制

二進位制轉八進位制時,首先需要將二進位制數自右向左每三位分成一段,然後將二進位制的每段的三位數轉為八進位制的一位,轉換過程中數值的對應關係如表所示。

 了解了二進位制轉八進位制的規則,接下來詳細講解如何將乙個二進位制數100101010轉為八進位制數,具體步驟如下。

(1)每三位分成一段,結果為100 101 010。

(2)將每段的數值分別查表替換,結果如下。

100→4

101→5

010→2

(3)將替換的結果進行組合,轉換的結果為0452(注意八進位制必須以0開頭)。

將二進位制轉十六進製制時,與轉八進位制類似,不同的是要將二進位制數每四位分成一段,查表轉換即可。二進位制轉十六進製制過程中數值的對應關係如表所示。

了解了二進位制轉十六進製制的規則,接下來通過乙個例子來學習一下。假設要將乙個二進位制數101001010110轉為十六進製制數,具體步驟如下。

(1) 每四位分成一段,結果為101001010110。

(2) 將每段的數值分別查表替換,結果如下。

1010→a

0101→5

0110→6

(3) 將替換的結果進行組合,轉換的結果為 0xa56 或 0xa56(注意十六進製制必須以 0x 或者0x開頭)。

using system;

using system.collections

.generic

;using system.linq

;using system.text

;using system.threading

.tasks

;namespace 進製轉化}}

C語言程式設計入門必做題 2 16進製制轉換

將輸入的10進製數轉換成2 16進製制數 補充說明一句,這是最傻帽的演算法了,就是乙個個加上去而已 希望拋磚引玉了,清高是不吝指點,謝謝!include include include long get int num char del int main int argc char argv num...

10進製轉換18進製 2進製

將乙個10進製數除以18,得到的商再除以18,依次類推直到商等於1或0為止,倒序取得的餘數即為18進製的結果。同理轉換為2進製。如圖 實現 如下 public class cal4 轉換18進製 param number return public static listto18 int numbe...

C 進製轉換

十進位制轉二進位制 console.writeline 十進位制166的二進位制表示 convert.tostring 166,2 十進位制轉八進位制 console.writeline 十進位制166的八進位制表示 convert.tostring 166,8 十進位制轉十六進製制 console...