電腦數值資料的換算
初寫:2009.05.25, 更新日期:2021.05.25
 
作者:曾老師
 

在電腦(電子計算機)的溝通中,不像人類是使用十根手指頭十進位來計算,
電腦在硬體上是使用二元運算,也就是所謂的二進位計算法。
所以,在這我們來看一下十進位與二進位的運算。

10進位和 N 進位轉換:
  • 10進位轉2進位
    (10進位與2進位關係)
    範例: 23 轉成 2進位 (一樣連除法/短除法,可轉換N進位)



    23 = 10111(越後面除出來的餘數,為越高位)






  • 2進位轉10進位
    請將 10111  轉成10進位
    10111 = 1x24 + 0x23 + 1x22 + 1x21 + 1x20
               = 1x16 + 0 + 1x4 + 1x2 + 1x1
               = 23.


    請各位算一下 83 的二進位是多少呢?



     
    ... 29 28 27 26 25 24 23 22 21 20
    ... 512 256 128 64 32 16 08 04 02 01
                ?        



    10進位對應2、8、16進位換算表,如下:
    十進位(10)
    Decimal
    二進位(2)
    Binary
    八進位(8)
    Octal
    十六進位(16)
    Hexadecimal
    0 0000 00 0
    1 0001 01 1
    2 0010 02 2
    3 0011 03 3
    4 0100 04 4
    5 0101 05 5
    6 0110 06 6
    7 0111 07 7
    8 1000 10 8
    9 1001 11 9
    10 1010 12 A
    11 1011 13 B
    12 1100 14 C
    13 1101 15 D
    14 1110 16 E
    15 1111 17 F
    16 - 20 10


  • 10進位轉8進位
    同理,10進位轉8進位也是一樣的道理。
    連除。
    轉換 N 進位,那同學同理可推怎麼去做了嗎?


  • 8進位轉10進位
    同理,轉換回10進位,只要將相對應的位元乘以8n位數即可得到.
    N進位換算回10進位也是一樣.


  • 2進位和8進位關係
    如果觀察力強的同學,
    不難發現,二進位和八進位是什麼關係?
    我們將二進位以三個位數切割一組.
    1101(2)=001,101 (不足位數則補零,需補兩位數, 藍色部分)
                = 1 , 5 (8)



  • 電路、數位邏輯電路的應用
    想想為什麼不用十進位來製作計算電路?而是使用二進位的方式呢?









  • 10進位小數換成2進位小數
    將小數點以下位數乘以2, 所得到的個位數為二進位的小數,
    依順序往低位排列.

    範例:0.375
    0.375x2 = 0.750
    0.750x2 = 1.500
    0.500x2 = 1.000

    所以,二進位小數為 .011
    倒推驗算一次
    .011 = 0x2-1 + 1x2-2 + 1x2-3
            = 0x0.5 + 1x0.25 + 1x0.125
            = 0.375


參考資料: