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語言裡,注意,說...