c語言二進位制八進位制十進位制16進製制怎麼轉換

2021-03-04 08:56:52 字數 6733 閱讀 1502

1樓:鈕秀英御卿

在程式設計時直接用格式化輸出函式,%d表示以十進位制輸出,%o表示以八進位制輸出,%x表示以十六進位制輸出…這樣可以實現不同進製之間的轉換…

c語言程式設計二進位制整數向八進位制、十進位制、十六進位制整數的轉換

2樓:匿名使用者

#include

void showbit(int n)

printf("%d",n%2);

}void showoct(int n)

printf("%d",n%8);

}void showhex(int n)

printf("%d",n%16);

}int main()

3樓:你猜我猜哇擦猜

二進位制轉換成八進位製數

(1)二進位製數轉換成八進位製數:對於整數,從低位到高位將二進位製數的每三位分為一組,若不夠三位時,在高位左面添0,補足三位,然後將每三位二進位製數用一位八進位製數替換,小數部分從小數點開始,自左向右每三位一組進行轉換即可完成。例如:

將二進位製數1101001轉換成八進位製數,則

(001 101 001)2

| | |

( 1 5 1)8

( 1101001)2=(151)8

(2)八進位製數轉換成二進位製數:只要將每位八進位製數用三位二進位製數替換,即可完成轉換,例如,把八進位製數(643.503)8,轉換成二進位製數,則

(6 4 3 . 5 0 3)8

| | | | | |

(110 100 011 . 101 000 011)2

(643.503)8=(110100011.101000011)2

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

(1)二進位製數轉換成十六進位製數:由於2的4次方=16,所以依照二進位制與八進位制的轉換方法,將二進位製數的每四位用乙個十六進位制數碼來表示,整數部分以小數點為界點從右往左每四位一組轉換,小數部分從小數點開始自左向右每四位一組進行轉換。

(2)十六進位制轉換成二進位製數

如將十六進位製數轉換成二進位製數,只要將每一位十六進位製數用四位相應的二進位製數表示,即可完成轉換。

例如:將(163.5b)16轉換成二進位製數,則

( 1 6 3 . 5 b )16

| | | | |

(0001 0110 0011. 0101 1011 )2

(163.5b)16=(101100011.01011011)2

c語言中的二進位制十進位制八進位制十六進位制都是怎麼轉化的?

4樓:相迎祿渟

/**程式功能:求二進位制,十進位制,八進位制

建立人:蒲宇林

建立日期:2023年8月13日

**/#include

void

two();

void

eight();

void

sixteen();

/**主函式**/

void

main()

if(select

==0)

}while(1);

}void

two()

}printf("轉換為二進位制:");

//列印

for(;

i>=0;

i--)

printf("\n");

}void

eight()

}printf("轉換為八進位制:");

//列印

for(;

i>=0;

i--)

printf("\n");

}void

sixteen()

}printf("轉換為十六進位制:");

//列印

for(;

i>=0;

i--)

}printf("\n");}

5樓:洪香芹荊夫

我假定你知道怎麼從10進製轉化到二進位制,乙個二進位製數,從右到左,三位合成一數,就變成8進製,四位合成乙個數就變成16進製制.

如:10進製數:100,二進位制表示為:1100100,三位三位的取,001(1)100(4)100(4),八進位制為144

四位四位的取:0110(6)0100(4),16進製為64

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

6樓:千鋒教育

ccandbobo

2011-08-05 09:22

一。進製概念

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

請問用c語言編寫乙個十進位制轉換成二進位制或八進位制或十六進位制的程式需要怎麼打?

7樓:會飛的小兔子

#include

voidmain()

inttransfer(intx)

}returny;

}擴充套件資料c語言:整數轉換十六進位製數和八進位制

#include

voidmain()

8樓:匿名使用者

int main()

while(b!=1);

c[j]=1;

printf("二進位制為: ");

for(i=j;i>=0;i--)

printf("%d",c[i]);

break;

case 8:

printf("請輸入乙個十進位制:b= ");

scanf("%d",&b);

dowhile(b!=0);

printf("八進位制為: ");

for(i=j-1;i>=0;i--)

printf("%d",c[i]);

break;

case 16:

printf("請輸入乙個十進位制:b= ");

scanf("%d",&b);

dowhile (b!=0);

printf("十六進位制為: ");

for(i=j-1;i>=0;i--)

printf("%d",c[i]);break;

default:printf("錯誤\n");}}修改過的,望採納

c語言中二進位制 十進位制 八進位制 十六進位制之間的換算?

9樓:世釗聊靈慧

二進位制的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

302/2

=151

餘0151/2=75

餘175/2=37

餘137/2=18

餘118/2=9

餘09/2=4

餘14/2=2

餘02/2=1

餘01/2=0

餘1故二進位制為100101110

二進位制轉八進位制

在把二進位製數轉換為八進位制表示形式時,對每三位二進位制位進行分組,應該從小數點所在位置分別向左向右劃分,若整數部分倍數不是3的倍數,可以在最高位前面補若干個0;對小數部分,當其位數不是的倍數時,在最低位後補若干個0.然後從左到右把每組的八進位制碼依次寫出,即得轉換結果.

你算一下就知道了啊

比如110=2^2+2+0=6

二進位制轉十六進位制

要將二進位制轉為16進製制,只需將二進位制的位數由右向左每四位乙個單位分隔,分的不夠的前邊補零,用四位數的二進位製數來代表乙個16進製制。轉換表如下,括號內為十六進位制

0000(0)

0001

(1)0010

(2)0011

(3)0100

(4)0101

(5)0110

(6)0111

(7)1000

(8)1001

(9)1010(a)

1011

(b)1100

(c)1101

(d)1110

(e)1111

(f)例如:10101011劃分為10101011,根據轉換表十六進位制為ab

c語言十進位制轉二進位制八進位制和十六進位制

這是用遞迴的方法實現各位正序計算 倒序列印的。舉例說明 n 10 列印二進位製數 f1 10 10不等於0呼叫f1 10 2 f1 10 函式至此等待,直到f1 10 2 返回後繼續執行 f1 5 5不等於0呼叫f1 5 2 f1 5 函式至此等待,直到f1 5 2 返回後繼續執行 f1 2 2不等...

十進位制,八進位制,十六進位制,二進位制的英文翻譯

十進位制 decimal system 即1.滿十進一,滿二十進二,以此類推.2.按權,第一位權為10 0,第二位10 1.以此類推,第n位10 n 1 該數的數值等於每位位的數值 該位對應的權值之和。八進位制 octal number system 一種以8為基數的計數法,採用0,1,2,3,4,...

什麼是二進位制八進位制十進位制十六進位制還有他

十進位制就是我們平時數學和生活中國經常用到的。二進位制,八進位制,十六進位制一般是計算機用到的。計算機的最底層就是二進位制0,1 其實都是很好理解的,十進位制是逢十進一,二進位制是逢二進一,八進位制是逢八進一,十六進位制是逢十六進一。他們之間的轉換有相對應的工具的。你可以搜尋下進製轉化工具進行轉換。...