溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

進(jìn)制之間的轉(zhuǎn)換

發(fā)布時(shí)間:2020-08-09 00:53:59 來(lái)源:網(wǎng)絡(luò) 閱讀:594 作者:yuw2016 欄目:編程語(yǔ)言
關(guān)于根底單薄的讀者,本節(jié)的內(nèi)容能夠略顯流暢和單調(diào),假如認(rèn)為費(fèi)勁,可以臨時(shí)跳過(guò),用到的時(shí)分再來(lái)瀏覽。然則本節(jié)所講的內(nèi)容是進(jìn)修編程的根底,是程序員的根本功,即便如今不學(xué),遲早也要回來(lái)學(xué)。

后面兩節(jié)對(duì)二進(jìn)制、八進(jìn)制和十六進(jìn)制停止了闡明,接下來(lái)講一下分歧進(jìn)制之間的數(shù)字是若何轉(zhuǎn)換的,這在編程中常常會(huì)用到,特別是C言語(yǔ)。

其他進(jìn)制向十進(jìn)制轉(zhuǎn)換

二進(jìn)制、八進(jìn)制和十六進(jìn)制向十進(jìn)制轉(zhuǎn)換多是十分輕易的,就是“按權(quán)相加”。
所謂“權(quán)”,也即“位權(quán)”。例如,十進(jìn)制第1位的位權(quán)為100=1,第2位的位權(quán)為101=10,第3位的位權(quán)為102=100;而二進(jìn)制第1位的位權(quán)為20=1,第2位的位權(quán)為21=2,第3位的位權(quán)為22=4。設(shè)數(shù)字所采取的進(jìn)制為N(基數(shù)也是N),那么第 i 位的位權(quán)為 N(i-1)
分歧進(jìn)制轉(zhuǎn)換為十進(jìn)制舉例:

  • 二進(jìn)制:1001 = 1×23 + 0×22 + 0×21 + 1×20 = 8 + 0 + 0 + 1 = 9

  • 二進(jìn)制:101.1001 = 1×22 + 0×21 + 1×2+ 1×2-1 + 0×2-2 + 0×2-3 + 1×2-4 = 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625

  • 八進(jìn)制:0302 = 3×82 + 0×81 + 2×80 = 192 + 0 + 2 = 194

  • 八進(jìn)制:0302.46 = 3×82 + 0×81 + 2×80 + 4×8-1 + 6×8-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375

  • 十六進(jìn)制:0Xea7 = 14×162 + 10×161 + 7×160 = 3751

十進(jìn)制轉(zhuǎn)換為二進(jìn)制——輾除法

上節(jié)的表格中給出了復(fù)雜的十進(jìn)制和二進(jìn)制的轉(zhuǎn)換關(guān)系,要想取得更多的轉(zhuǎn)換關(guān)系,可以運(yùn)用輾除法。輾除法也就是“除模取余”法。除模取余就是將一個(gè)幾進(jìn)制的數(shù)轉(zhuǎn)化成另一個(gè)進(jìn)制時(shí), 另一個(gè)進(jìn)制的基數(shù)就是模,用將要轉(zhuǎn)化的進(jìn)制數(shù)除以模,取它的余數(shù)。
下圖以十進(jìn)制的“19”轉(zhuǎn)換為二進(jìn)制為例停止解說(shuō):

進(jìn)制之間的轉(zhuǎn)換
圖1:19 轉(zhuǎn)換為二進(jìn)制


如圖所示,以2為除數(shù),不斷相除下去,直到商為0,余數(shù)則為求得的二進(jìn)制數(shù)。
留意:余數(shù)要倒序陳列,也就是說(shuō),最先求得的余數(shù)排在二進(jìn)制的最初面,最初求得的余數(shù)排在二進(jìn)制的最后面。下面的例子中,最初求得的二進(jìn)制數(shù)為 10011。
固然其他進(jìn)制也可以依照輾除法來(lái)轉(zhuǎn)換,然則比擬費(fèi)事,下面引見更復(fù)雜的辦法。

二進(jìn)制和八進(jìn)制的轉(zhuǎn)換

二進(jìn)制向八進(jìn)制的轉(zhuǎn)換是每三位二進(jìn)制數(shù)轉(zhuǎn)換為一位八進(jìn)制數(shù),運(yùn)算的次序是從低位向高位順次停止,高位缺乏三位用零彌補(bǔ)。以二進(jìn)制“1011101”為例,如下圖所示:

進(jìn)制之間的轉(zhuǎn)換
圖2:二進(jìn)制轉(zhuǎn)八進(jìn)制


轉(zhuǎn)換的后果為:1011101 = 0135
八進(jìn)制向二進(jìn)制轉(zhuǎn)換的思緒是八進(jìn)制的一位轉(zhuǎn)換為二進(jìn)制的三位,運(yùn)算的次序是從低位向高位順次停止。異樣以八進(jìn)制“0135”為例,如下圖所示:

進(jìn)制之間的轉(zhuǎn)換
圖3:八進(jìn)制轉(zhuǎn)二進(jìn)制


轉(zhuǎn)換的后果為:0135 = 1011101

二進(jìn)制和十六進(jìn)制的轉(zhuǎn)換

二進(jìn)制向十六進(jìn)制轉(zhuǎn)換時(shí),四位轉(zhuǎn)換成十六進(jìn)制的一位,運(yùn)算的次序是從低位向高位順次停止,高位缺乏四位用零補(bǔ)。以“1110011”轉(zhuǎn)換成十六進(jìn)制為例,如下圖所示:

進(jìn)制之間的轉(zhuǎn)換
圖4:二進(jìn)制轉(zhuǎn)十六進(jìn)制


轉(zhuǎn)換的后果為:1001011101 = 0X25D
十六進(jìn)制向二進(jìn)制轉(zhuǎn)換,就是把十六進(jìn)制的一位轉(zhuǎn)換成二進(jìn)制的四位,留意運(yùn)算的次序是從低位向高位順次停止。異樣以十六進(jìn)制“0X25D”為例,如下圖所示:

進(jìn)制之間的轉(zhuǎn)換
圖5:十六進(jìn)制轉(zhuǎn)二進(jìn)制


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI