匯編每天1分鐘 (1) | 多進(jìn)制之間的轉(zhuǎn)化

我們生活中使用的數(shù)字,比如10、12、15、121等。這些都是以十進(jìn)制表示,也就是逢十進(jìn)一:

以121為例,10^2*1 + 10^1*2 + 10^0*1 = 121(10^2表示10的二次方,同100)

計(jì)算過程,如圖1-1:

圖1-1


但作為IT人員,我們可能要熟悉多種進(jìn)制,例如二進(jìn)制、十六進(jìn)制。

二進(jìn)制

二進(jìn)制是計(jì)算技術(shù)中廣泛采用的一種數(shù)制,也是機(jī)器唯一能懂的語言,像我們目前主流使用的c++、php、java最終都要翻譯成二進(jìn)制,再讓機(jī)器識(shí)別。它們的長(zhǎng)相就像這樣“1111001”,我們都熟悉十進(jìn)制是逢十進(jìn)一,因此二進(jìn)制其實(shí)就是逢二進(jìn)一,例如:1001 + 0001 = 1010。

以二進(jìn)制1111001為例,還原成10進(jìn)制,2^6*1 + 2^5*1 + 2^4*1 + 2^3*1 + 2^2*0 + 2^1*0 + 2^0*1 = 121

計(jì)算過程,如圖2-1:


圖2-1,二進(jìn)制1111001最終轉(zhuǎn)化為10進(jìn)制為121

我們都知道0乘任何數(shù)字都為0,所以我們計(jì)算時(shí)過濾0的位置,如圖2-2:


圖2-2,去掉0所在位置,快速計(jì)算過程

十進(jìn)制121也有快速算出二進(jìn)制的方式:

首先我們上坐標(biāo)軸,如圖2-3:


圖2-3

121可以拆成64+57,我們往64位置補(bǔ)1,如圖2-4:


圖2-4

我們接著拆57 = 32+25,我們往32的位置補(bǔ)1,如圖2-5:


圖2-5

我們快進(jìn),25=16+8+1,最終得出結(jié)果,如圖2-6:


圖2-6

十六進(jìn)制

十六進(jìn)制(簡(jiǎn)寫為hex或下標(biāo)16)在數(shù)學(xué)中是一種逢16進(jìn)1的進(jìn)位制。一般用數(shù)字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,這些稱作十六進(jìn)制數(shù)字,例如:1AH,H表示十六進(jìn)制單位。

首先呢,先要看看十六位數(shù)的表示方法,如圖3-1:


圖3-1

16=2^4,因此每個(gè)十六進(jìn)制位對(duì)應(yīng)4位二進(jìn)制,如圖3-2:


圖3-2

所以,十六進(jìn)制轉(zhuǎn)二進(jìn)制簡(jiǎn)直不要太簡(jiǎn)單,19AE = 0001 1001 1010 1110

同理,二進(jìn)制轉(zhuǎn)十六進(jìn)制,1010000101 = 10? 1000? 0101? = 285

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容