誰知道二進位制與十進位制八進位制十六進位制之間怎麼轉換的

2021-03-19 18:36:29 字數 6701 閱讀 9661

1樓:隋書今

有2種方法,可以直接用計算機輸出,可以手動計算 1、先來最簡單的,下邊是在vc6.0用c語言寫成的,就是使用格式符輸出%d為10進位制,%o為8進位制,%x為16進位制 #includemain() 有缺點就是小數和2進位制轉換不了 2、手動轉換,括號外的表示進位制是標記,(10)2,表示2進位制碼10 r進位制數→十進位制數:使用按權相加法,即將各位進位制數碼與它對應的權相乘,其積相加,和數即為與該r進位制數相對應的十進位制數。

十進位制數→r進位制數:整數的轉換:採用除r取餘法。

從最後一次除得餘數讀起(即從高位到低位)。 小數部分的轉換:採用乘r取整法,將所得小數從第一次乘得整數讀起,就是這個十進位制小數所對應的r進位制小數 例1:

求(1100101.101)2 的等值十進位制數。 分析:

使用按權相加法,即將各位進位制數碼與它對應的權相乘,其積相加,和數即為與該r進位制數相對應的十進位制數。 1100101.101)2=1×26+1×25+0×24+0×23+1×22+0×21+1×20+1×2-1 + 0×2-2+1×2-3 =64+32+0+0+4+0+1+0.

5+0.125 =(101.625)10 即(1100101.

101)2=(101.625)10 例2:求(66.

625)10等值二進位制數 分析:將此數分成整數和小數兩部分分別轉換,然後再拼接起來。 解:

先求(66)10的等值2進位制,用除2取餘法: 66/2=33餘0, 33/2=16餘1, 16/2=8餘0, 8/2=4餘0, 4/2=2餘0, 2/2=1餘0, 1/2=1餘1 即(66)10=(1000010)2 再求小數部分 0.625×2=1.

250 1 0.250×2=0.500 0 0.

500×2=1.000 1 即(0.625)10=(0.

101)2 (66.625)10=(1000010.101)2 注意:

十進位制小數不一定都能轉換成完全等值的二進位制小數,所以有時要取近似值,有換算誤差存在 這裡只有先把其他進位制轉換為10進位制,再轉換為其他進位制的,其實還有更簡單的,**分吧,哈哈

2樓:怪蜀黍

太複雜了,建議找本大學計算機課本(第一冊),上面講的很清楚

二進位制,八進位制,十進位制,十六進位制之間是怎麼轉換的

3樓:匿名使用者

二進位制與十進位制之間的轉換

1十進位制轉二進位制

方法為:十進位制數除2取餘法,即十進位制數除2,餘數為權位上的數,得到的商值繼續除2,依此步驟繼續向下運算直到商為0為止。

(具體用法如下圖)

2二進位制轉十進位制

方法為:把二進位制數按權、相加即得十進位制數。

(具體用法如下圖)

end二進位制與八進位制之間的轉換

1二進位制轉八進位制

方法為:3位二進位制數按權相加得到1位八進位制數。(注意事項,3位二進位制轉成八進位制是從右到左開始轉換,不足時補0)。

(具體用法如下圖)

2八進位制轉成二進位制

方法為:八進位制數通過除2取餘法,得到二進位制數,對每個八進位制為3個二進位制,不足時在最左邊補零。

(具體用法如下圖)

end二進位制與十六進位制之間的轉換

1二進位制轉十六進位制

方法為:與二進位制轉八進位制方法近似,八進位制是取三合一,十六進位制是取四合一。(注意事項,4位二進位制轉成十六進位制是從右到左開始轉換,不足時補0)。

(具體用法如下圖)

2十六進位制轉二進位制

方法為:十六進位制數通過除2取餘法,得到二進位制數,對每個十六進位制為4個二進位制,不足時在最左邊補零。

(具體用法如下圖)

end十進位制與八進位制與十六進位制之間的轉換

十進位制轉八進位制或者十六進位制有兩種方法

第一:間接法—把十進位制轉成二進位制,然後再由二進位制轉成八進位制或者十六進位制。這裡不再做**用法解釋。

第二:直接法—把十進位制轉八進位制或者十六進位制按照除8或者16取餘,直到商為0為止。

(具體用法如下圖)

八進位制或者十六進位制轉成十進位制

方法為:把八進位制、十六進位制數按權、相加即得十進位制數。

(具體用法如下圖)

4樓:林傑專用

1、二進位制數

、八進位制數、十六進位制數轉十進位制數

有一個公式:二進位制數、八進位制數、十六進位制數的各位數字分別乖以各自的基數的(n-1)次方,其和相加之和便是相應的十進位制數。個位,n=1;十位,n=2...舉例:

110b=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6d

110q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72d

110h=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272d

2、十進位制數轉二進位制數、八進位制數、十六進位制數

方法是相同的,即整數部分用除基取餘的演算法,小數部分用乘基取整的方法,然後將整數與小數部分拼接成一個數作為轉換的最後結果。

例:見四級指導16頁。

3、二進位制數轉換成其它資料型別

3-1二進位制轉八進位制:從小數點位置開始,整數部分向左,小數部分向右,每三位二進位制為一組用一位八進位制的數字來表示,不足三位的用0補足,

就是一個相應八進位制數的表示。

010110.001100b=26.14q

八進位制轉二進位制反之則可。

3-2二進位制轉十進位制:見1

3-3二進位制轉十六進位制:從小數點位置開始,整數部分向左,小數部分向右,每四位二進位制為一組用一位十六進位制的數字來表示,

不足四位的用0補足,就是一個相應十六進位制數的表示。

00100110.00010100b=26.14h

十進位制轉各進位制

要將十進位制轉為各進位制的方式,只需除以各進位制的權值,取得其餘數,第一次的餘數當個位數,第二次餘數當十位數,其餘依此類推,直到被除數小於權值,最後的被除數當最高位數。

一、十進位制轉二進位制

如:55轉為二進位制

2|55

27――1 個位

13――1 第二位

6――1 第三位

3――0 第四位

1――1 第五位

最後被除數1為第七位,即得110111

二、十進位制轉八進位制

如:5621轉為八進位制

8|5621

702 ―― 5 第一位(個位)

87 ―― 6 第二位

10 ―― 7 第三位

1 ―― 2 第四位

最後得八進位制數:127658

三、十進位制數十六進位制

如:76521轉為十六進位制

16|76521

4726 ――5 第一位(個位)

295 ――6 第二位

18 ――6 第三位

1 ―― 2 第四位

最後得1276516

二進位制與十六進位制的關係

2進位制 0000 0001 0010 0011 0100 0101 0110 0111

16進位制 0 1 2 3 4 5 6 7

2進位制 1000 1001 1010 1011 1100 1101 1110 1111

16進位制 8 9 a(10) b(11) c(12) d(13) e(14) f(15)

可以用四位數的二進位制數來代表一個16進位制,如3a16 轉為二進位制為:

3為0011,a 為1010,合併起來為00111010。可以將最左邊的0去掉得1110102

右要將二進位制轉為16進位制,只需將二進位制的位數由右向左每四位一個單位分隔,將各單位對照出16進位制的值即可。

二進位制與八進位制間的關係

二進位制 000 001 010 011 100 101 110 111

八進位制 0 1 2 3 4 5 6 7

二進位制與八進位制的關係類似於二進位制與十六進位制的關係,以八進位制的各數為0到7,以三位二進位制數來表示。如要將51028 轉為二進位制,5為101,1為001,0為000,2為010,將這些數的二進位制合併後為1010010000102,即是二進位制的值。

若要將二進位制轉為八進位制,將二進位制的位數由右向左每三位一個單位分隔,將事單位對照出八進位制的值即可。

5樓:那年的16分音符

其實我覺得你搜csdn的時間會比等答案的時間少的多

二進位制,八進位制,十進位制,十六進位制之間怎麼轉換

6樓:匿名使用者

一。進位制概念

1。 十進位制

十進位制使用十個數字(0、1、2、3、4、5、6、7、8、9)記數,基數為10,逢十進一。

歷史上第一臺電子數字計算機eniac是一臺十進位制機器,其數字以十進位制表示,並以十進位制形式運算。設計十進位制機器比設計二進位制機器複雜得多。而自然界具有兩種穩定狀態的元件普遍存在,如開關的開和關,電路的通和斷,電壓的高和低等,非常適合表示計算機中的數。

設計過程簡單,可靠性高。因此,現在改為二進位制計算機。

2。 二進位制

二進位制以2為基數,只用0和1兩個數字表示數,逢2進一。

二進位制與遵循十進位制數遵循一樣的運算規則,但顯得比十進位制更簡單。例如:

(1)加法:0+0=0 0+1=1 1+0=1 1+1=0

(2)減法:0-0=0 1-1=01-0=1 0-1=1

(3)乘法:0*0=0 0*1=01*0=0 1*1=1

(4)除法:0/1=0 1/1=1,除數不能為0

3。 八進位制

所謂八進位制,就是其基數為8,基數值可以取0、1、2、3、4、5、6、7共8個值,逢八進一。

八進位制與十進位制運算規則一樣。那麼為什麼要用八進位制呢?難道要設計八進位制的計算機麼?

實際上,八進位制與十六進位制的引用,主要是為了書寫和表示方便,因為二進位制表示位數比較長。如:(1024)10 用二進位制表示為 (10000000000)2,共有11個數字,用八進位制表示為(2000)8。

更重要的是,由於二進位制與八進位制存在在一種對等關係,每三位二進位制與一位八進位制數完全對等(23=8)。所以二進位制和十進位制在運算上無區別,而時進位制不具備這一優點。

4。 十六進位制

十六進位制應用也是非常廣泛的一種計數制。在使用者看來,十六進位制是二進位制數的一種更加緊湊的一種表示方法。

基數為:0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f,逢十進一。在十六進位制系統中,數值為10到15的數分別用a、b、c、d、e、f表示。

二進位制數及與之等值的八進位制、十進位制和十六進位制數

二進位制 八進位制 十進位制 十六進位制

0000 0 0 0

0001 1 1 1

0010 2 2 2

0011 3 3 3

0100 4 4 4

0101 5 5 5

0110 6 6 6

0111 7 7 7

1000 10 8 8

1001 11 9 9

1010 12 10 a

1011 13 11 b

1100 14 12 c

1101 15 13 d

1110 16 14 e

1111 17 15 f

二。進位制轉換

1。二進位制與十進位制數間的轉換

(1)二進位制轉換為十進位制

將每個二進位制數按權後求和即可。請看例題:

把二進位制數(101.101)2=1*22+0*21+1*20+1*2-1+0*2-2+1*2-3=(5.625)10

(2)十進位制轉換為二進位制

一般需要將十進位制數的整數部分與小數部分分開處理。

整數部分計算方法:除2取餘法請看例題:

十進位制數(53)10的二進位制值為(110101)2

小數部分計算方法:乘2取整法,即每一步將十進位制小數部分乘以2,所得積的小數點左邊的數字(0或1)作為二進位制表示法中的數字,第一次乘法所得的整數部分為最高位。請看例題:

將(0.5125)10轉換成二進位制。(0.5125)10=(0.101)2

2。 八進位制、十六進位制與十六進位制間的轉換

八進位制、十六進位制與十六進位制之間的轉換方法與二進位制,同十進位制之間的轉換方法類似。例如:

(73)8=7*81+3=(59)10

(0.56)8=5*8-1+6*8-2=(0.71875)10

(12a)16=1*162+2*161+a*160=(298)10

(0.3c8)16=3*16-1+12*16-2+8*16-3=(0.142578125)10

十進位制整數→→→→→八進位制方法:「除8取餘」

十進位制整數→→→→→十六進位制方法:「除16取餘」 例如:

(171)10=(253)8

(2653)10=(a5d)16

十進位制小數→→→→→八進位制小數 方法:「乘8取整」

十進位制小數→→→→→十六進位制小數方法:「乘16取整」例如:

(0。71875)10=(0.56)8

(0.142578125)10=(0.3c8)16

3.非十進位制數之間的轉換

(1)二進位制數與八進位制數之間的轉換

轉換方法是:以小數點為界,分別向左右每三位二進位制數合成一位八進位制數,或每一位八進位制數展成三位二進位制數,不足三位者補0。例如:

(423。45)8=(100 010 011.100 101)2

(1001001.1101)2=(001 001 001.110 100)2=(111.64)8

2。二進位制與十六進位制轉換

轉換方法:以小數點為界,分別向左右每四位二進位制合成一位十六進位制數,或每一位十六進位制數展成四位二進位制數,不足四位者補0。例如:

(abcd。ef)16=(1010 1011 1100 1101.1110 1111)2

(101101101001011.01101)2=(0101 1011 0100 1011.0110 1000)2=(5b4b。68)16

二進位制八進位制十六進位制十進位制之間的轉換

二進位制的1101轉化成十進位制 1101 2 1 2 0 0 2 1 1 2 2 1 2 3 1 0 4 8 13 轉化成十進位制要從右到左用二進位制的每個數去乘以2的相應次方 不過次方要從0開始 十進位制轉二進位制 用2輾轉相除至結果為1 將餘數和最後的1從下向上倒序寫 就是結果 例如302 3...

二進位制和十進位制是什麼,十進位制與二進位制有什麼區別?

二進位制就是逢二進一也就是說每個位的最大值為1例如 100,101,111都是二進位制分別代表十進位制的4,5,7十進位制就是逢十進一也就是說每個位的最大值是9例如 99,88,79等 總結 n進位制就是每個位的最大值為x 1 兩種計數的方式 十進位制和二進位制到底有什麼區別?十進位制與二進位制有什...

c語言裡,八進位制,十六進位制,二進位制,十進位制怎麼互

n進位制轉 baim進位制,10進製表示,n,m均小 du於10 如果大zhi於10需要 dao特殊處回理,需要使用字串來答 輔助處理了 int convertnumber int x,int n,int m z 0 nn 1 while y return z void main c語言裡,注意,說...