標籤:
資料表示方式
電腦只認識0與1,(早期的電腦使用的是利用通電與否的特性的真空管,如果通電就是1,沒有通電就是0, 後來沿用至今,我們稱這種只有0/1的環境為二進位制,英文稱為binary)記錄的資料也是只能記錄0與1而已,所以電腦常用的資料是二進位的。 但是我們常用的數值運算是十進位,文字方面則有非常多的語言,常用的語言就有英文、中文(又分正體與簡體中文)等。 那麼電腦如何記錄與顯示這些數值/文字呢?就得要透過一系列的轉換才可以啦!
一:數字系統
十進位,890的意義為:
890= 8x102 + 9x101 + 0x100
二進位,我們來解釋一下1101111010的數值轉為十進位的話,結果如下:
1101111010= 1x29+1x28 + 0x27+ 1x26 + 1x25 + 1x24 + 1x23 + 0x22+ 1x21 + 0x20
= 512+256 +0+ 64 + 32 + 16 + 8+0+2+0= 890
這樣你瞭解二進位的意義了嗎?二進位是電腦基礎中的基礎喔!瞭解了二進位後,八進位、十六進位就依此類推啦! 那麼知道二進位轉成十進位後,那如果有十進位元值轉為二進位的環境時,該如何計算? 剛剛是乘法,現在則是除法就對了!我們同樣的使用十進位的890轉成二進位來測試一下好了:
890/2=445 0
445/2=222 1
222/2=111 0
111/2=55 1
55/2=27 1
27/2=13 1
13/2=6 1
6/2=3 0
3/2=1 1
1/2=0 1
最後的寫法就如同上面的紅色箭頭,由最後的數字向上寫,因此可得到1101111010的數字羅! 這些數位轉換系統是非常重要的,因為電腦的加減乘除都是使用這些機制來處理的! 有興趣的朋友可以再參考一下其他計算計概論的書籍中,關於1的補數/2的補數等運算方式喔!
//簡單的介紹PHP中的的幾個函數//decbin — 十進位轉換為二進位echo decbin(890) //1101111010//bindec — 二進位轉換為十進位echo bindec (‘1101111010‘) //890//dechex — 十進位轉換為十六進位echo dechex (890) //37a//hexdec() - 十六進位轉換為十進位echo hexdec("37a") //890//decoct — 十進位轉換為八進位echo decoct (890) //1572//octdec — 八進位轉換為十進位echo octdec (1572) //890//base_convert — 在任意進位之間轉換數字string base_convert ( string $number , int $frombase , int $tobase )//number要轉換的數字frombase當前進位 tobase 目標進位
電腦理論知識--資料標示方式