請問16位的16進制怎么表示?
簡單地說1. 計算機內部工作用的是且僅是2進制。所有其他進制都只是給人們看的表達2. 并不是沒有32進制,64進制。理論上任何進制都是可以有的,只是人們不需要或者說不用。
詳細地說比如說十進制的195,在計算機內部工作時候是二進制的11000011,但要寫給人們看的時候,總不能寫那么多0和1,多麻煩。
而且你一眼也看不出來是多少,他可以寫成我們最熟悉的十進制的195。
可惜十進制數位數并不對應確定的2進制數位數,比如8的二進制是1000,11的二進制是1011,二進制都是4位,但十進制一個是1位,一個兩位,這樣處女座程序員就會很不開心。所以人們就用16進制來表達195成C3,之所以是16進制,是因為他是2的次冪。所以每4位二進制就可以用1位16進制來表示。那么為什么不用32進制呢?
首先,當然可以有32進制,這樣每5位二進制就可以用一位32進制的數來表示。(注意這里只比16進制多表達了1位二進制)。那么既然是一個數,我們總要用一個符號來寫出來吧,可惜人們只發明了0-9這10個數字,所以對于16進制,10=A,11=B,12=C,13=D,14=E,15=F。也就是借用了6個英文字母。也就是說在和人們最熟悉的十進制轉換中,人們需要記住這6個數字和字母的對應,人類還勉強應付的過來。那么對于32進制呢,我們當然也可以用同樣的方法,讓16=G, 17=H, ... 31= V. 所以你會看到一個數字寫成BMW,或者FUCK,然后你會在心中罵,這tm是幾。
然后那些cs學生做考卷的時候就會心里暗自詛咒那個說要使用32進制的人。
因為你現在要記憶22個字母和數字的對應去換成你最熟悉的10進制,大大增加了復雜度。卻并沒有讓你對二進制的表達變簡單多少。(前面說了只多表達了1位)所以本著no zuo no die的精神不要給自己,也不要給他人找麻煩。
從更深層次的角度說。現在計算機是64位(或32位)的,就是一次可以處理64位的二進制數,所以人們很關心如何表達64位二進制數。
注意64是4的倍數,所以64位二進制數正好可以寫成16個16進制數。但是64不是5的倍數,用32進制不能很好表達64位二進制。比4大的下一個能被64整除的數是8,如果要一次表達8位二進制數,這就是256進制。可憐我們的字母也只有26個。所以一個256進制數都找不到很好的符號系統來表達他。
你當然說我們可以創造一套符號,但是again,不要沒事找事,特別是沒有給人類帶來多方便的時候。所以比較下來,16進制即可以縮減二進制的位數,又可以方便轉換到我們熟悉的十進制數,也可以方便的用幾個數字和字母寫出來。所以成為了計算機學科中常使用的數的表達方式。這個問題其實很像我們有1元,2元,5元,但為什么沒有3元,7元的鈔票一樣。
對于這些完全可以人為決定的事,原則就是與人方便。