【Java Saves!】Session 6:十六指星人。本站提示廣大學習愛好者:(【Java Saves!】Session 6:十六指星人)文章只能為提供參考,不一定能成為您想要的結果。以下是【Java Saves!】Session 6:十六指星人正文
後面說,計算機用2個手指頭數數,它外部的數是二進制,有0和1兩個數字。也看到,關於人來說,二進制數too long, too inconvenient, sometimes troublesome。順序員也是人。順序員是十六指星人。十六指星人數數用十六進制。
十六進制共有16個數字,除了0~9,還用A~F 這6個字母辨別代表10~15。多位數滿16進1。以一例闡明十六進制數轉換為十進制數的辦法:
1E240十六進制
= 1 × 164 + 14 × 163 + 2 × 162 + 4 × 161 + 0 × 160
= 1 × 65536 + 14 × 4096 + 2 × 256 + 4 × 16
= 123456
沒錯,這就是後面那篇隨筆中所例舉過的數,其二進制表示為 11110001001000000。為方便看官,我把圖在這裡再貼一次。留意下面算式中藍色的十六進制數字E轉換為十進制數是14。
相比於二進制,十六進制數書寫簡約,且與二進制數之間轉換方便:十六進制數的每位數字對應二進制數的4位數字。我們將上例這個數的二進制方式按每4位用空格分隔,就能很清楚地看到這個對應關系了:
123456十進制
= 1E240十六進制
= 0001 1110 0010 0100 0000二進制
留意,其中二進制數的最高位補了3個0(藍色局部),湊齊了4位。
小結一下:(1)在計算機外部,數是二進制;(2)同一個數,可以用二進制、十六進制、十進制等不同的 表示方式 ;(3)十六進制因其簡約而又易於與二進制數之間相互轉換,被順序員普遍運用
二進制的英文是binary,十六進制是hexadecimal,十進制是decimal。所以,下面Windows計算器截圖上可以看到,二進制數前寫著BIN,十六進制數前寫著HEX,十進制數前寫著 DEC。
Java 源代碼中十六進制數後面要加0x,用以與十進制數區分,例如:123456寫成0x1E240。