簡單地說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元的鈔票一樣。對於這些完全可以人為決定的事,原則就是與人方便。
簡單地說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元的鈔票一樣。對於這些完全可以人為決定的事,原則就是與人方便。