各進制轉換


進制轉換(二、八、十、十六進制轉換)


1、進制之間都可以互相轉換

  • 二進制(Binary簡寫B, 添加在數字后面例 (010101)B) 0和1;
  • 八進制(Octal簡寫O, 添加在數字后面(076451)O) 基數8,每列0-7;
  • 十進制(Decimal簡寫D, 添加在數字后面) 基數10,每列0-9;日常使用,每進1位表10倍;
  • 十六進制(Hexadecimal簡寫H, 添加在數字后面),基數16, 每列使用0-9,然后a-f;

2、二、八、十六進制轉十進制[例:(101011)B=(53)O=(43)D=(2B)H]

  • Remark十進制轉十進制,看到這是不是有點疑惑,往下看
    • 例如(234)D,十進制我們讀數兩百三十四,那么計算
      • 4 * 10^0 = 4;
      • 3 * 10^1 = 30;
      • 2 * 10^2 = 200;
      • 讀數 4 + 30 + 200 = 234;
    • 其他進制轉換成十進制把 10 換成其他進制數就行。如下
  • 二進制轉十進制
    • 例(101011)B, 從低位到高位(右往左依次計算), 第0位權值位2的0次方,第1位權值位2的1次方,第2位權值位2的2次方,依次類推;
      • 1 * 2^0 = 1;
      • 1 * 2^1 = 3;
      • 0 * 2^2 = 0;
      • 1 * 2^3 = 8;
      • 0 * 2^4 = 0;
      • 1 * 2^5 = 32;
    • 讀數把值加起來 1+3+0+8+0+32 = 43; 那么 (101011)B=(43)D;
  • 八進制轉十進制
    • 八進制轉10進制(53)O;累計方法和二進制一樣,逢八進一, 最大不超過7;
      • 3 * 8^0 = 3;
      • 5 * 8^1 = 40;
    • 讀數 3 + 40 = 43; (53)O = (43)D;
  • 十六進制轉十進制
    • (2B)H, 也是低位到高位一次計算, 累計
      • 11 * 16^0 = 11;
      • 2 * 16^1 = 32;
    • 讀數 11 + 32 = 43; (2B)H = (43)D;

3、十進制二進制、八進制、16進制(最后除不盡結束)

  • 十進制轉二進制例如(43D);
    • 除以取余數, 讀數倒着讀;
    • 商43除以2, 商21余數為1;
    • 商21除以2, 商10余數為1;
    • 將商10除以2,商5余數為0;
    • 將商5除以2,商2余數為1;
    • 將商2除以2,商1余數為0;
    • 將商1除以2,商0余數為1;
  • 讀數 (101011)B;
  • 十進制轉八進制例如(69)D
    • 除了取整數
    • 商69除以8,商8余數5;
    • 商8除以8,商1余數0;
    • 商1除以8, 商0余1;
  • 讀數(105)H;
  • 十進制轉十六進制(165)D
    • 取余讀數
    • 165 / 16, 商10(A)余5;
    • 10 / 16, 商0余數為10;
  • 讀數 (A5)H;

4、二進制轉十六進制、八進制

  • 二進制轉十六進制(1010100.010101)B[三合一法]
    • 取小數點向左(向右)三位計算,如果向左(向右)取三位后,取到最高(最低)位時候,如果無法湊足三位,可以在小數點最左邊(最右邊),即整數的最高位(最低位)添0,湊足三位。REMARK 向左取左邊補零,向右取右邊補零;
    • 向左 100 => 0 + 0 + 4 = 4;
      • 010 => 0 + 1 * 2^1 + 0 = 2;
      • 001(補齊) => 1 + 0 + 0 = 1;
    • 向右 010 => 0 + 2 + 0 = 2;
      • 101 => 1 + 0 + 4 = 5;
    • 讀數124.25;
  • 八進制轉二進制(124.25)O[一分三法]
    • 5 => 101;
    • 2 => 010;
    • 4 => 100;
    • 2 => 010;
    • 1 => 001;
    • 讀數1010100.010101
  • 二進制轉十六進制(11010111.10111010)B[四合一法]
    • 小數點向左(向右)取四位, 位數不夠補零, 右取右補零, 左取左補零
    • 向左
      • 0111 => 1 + 2 + 4 + 0 = 7;
      • 1101 => 1 + 0 + 4 + 8 = 13(D);
    • 向右
      • 1011 => 1 + 2 + 0 + 8 = 11(B);
      • 1010 => 0 + 2 + 0 + 8 = 10(A);
    • 讀數(D7.BA)H;
  • 十六進制轉二進制(D7.BA)H[一分四法];
    • D => ???? (1101)
    • 7 => ???? (0111)
    • ????
    • ????

練習題 (520)D (5201314)D (9527)H、

  • (520)D轉二進制 =>
    • 520 / 2 = 260 余0;
    • 130余0;
    • 65余0;
    • 32余1;
    • 16余0;
    • 8余0;
    • 4余0;
    • 2余0;
    • 1余0;
    • 1余1;
  • 讀數(1000001000)B
  • (9527)H =>轉十進制
    • 7*16^0 = 7;
    • 2*16^1 = 32;
    • 5*16^2 = 1280;
    • 9*16^3 = 36,864;
  • 讀數(38,183)D;
  • (5201314)H轉二進制
    • 5 => 0101;
    • 2 => 0010;
    • 0 => 0000;
    • 1 => 0001;
    • 3 => 0011;
    • 1 => 0001;
    • 4 => 0100;
  • 讀數 (101001000000001001100010100)B
  • (5201314)D轉進制16進制
    • 325082余2

后記

十六轉八進制可先轉二進制(一分四、一分三)再轉(三合一、四合一); 或者轉十進制(進制的冪次方累加),再轉十六進制或者八進制(除以16或者8取余);


免責聲明!

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



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