作為C語言初學者 這道題怎麼做?

時間 2021-06-02 18:44:11

1樓:看星空的倉鼠

轉8和16進製制沒時間想

轉二進位制

int bin[8];

int toBin(int data) {for(int i = 0; i < 8; i++) {bin[i] = data & 0x80;

data <<=1;

2樓:新上路的司機

#include

intpow_10

(inta)

inttoB

(inta,

intb

)//10進製轉任意小於10的b進製

returnm;

}int

toHex

(inta,

char

*arr

)//轉16進製制專用,因為用到了字母表示數字,當然改一改可以用到36進製

arr[i]

='\0'

;return0;

}int

main();

printf

("%d %d "

,toB(i

,2),toB(i

,8));toHex(i

,p);j

=7;while(j

>=0)

printf("

\n");}

return0;

}另外改改main()滿足題目就行了。

3樓:岡部倫太郎

十六進製制

cout<八進位制

cout << oct

二進位制void toBin(int n) {if ( n )

toBin(n/2);

if (n)

cout << (n & 1);

4樓:總督大人

如果只是輸出的話

printf函式用%x可以輸出十六進製制數,%o可以輸出八進位制數,二進位制的話就自己手算吧,這也是這類題的目的所在,%x和%o其實有點算作弊了。

5樓:

char

*Change

(int

Sum,

intN

,bool

UpCase

=true

)int

sig=1;

intWid=2

;// 返回的字串需要多少位;

const

char

Letter=(

UpCase

?'A'

:'a')-

10;if(

Sum<0)

if(Sum

if(Sum>=10)

else*(

++p)=

'\0'

;return(Ar

);}inta=N

;Wid=3

;for(;(

a*=N)

<=Sum;

++Wid

);char*Ar

=(char*)

calloc

(Wid

,sizeof

(char

));*Ar=

'0';

char*p

=Ar+Wid;*

p='\0'

;for

(;Sum

>0;Sum/=N)

if(sig<0)

if('0'==*Ar

)if(N

<=10)

for(p=

Ar;*p

;++p)

}return(Ar

);}#include

#include

#include

"Cat.h"

intmain

(int

argc

,char

**argv

)scanf

(" %d",&

N);if(

Re=Change(a

,N,Up

))else

}return0;

}這樣可以吧?

6樓:Male God

#include

#define MAXCHAR 101 /*最大允許字串長度*/

int char_to_num(char ch); /*返回字元對應的數字*/

char num_to_char(int num); /*返回數字對應的字元*/

long source_to_decimal(char temp, int source); /*返回由原數轉換成的10進製數*/

int decimal_to_object(char temp, long decimal_num, int object); /*返回轉換成目標數制後字元陣列的長度*/

void output(char temp, int length); /*將字元陣列逆序列印*/

int main()

int source; /*儲存原數制*/

int object; /*儲存目標數制*/

int length; /*儲存轉換成目標數制後字元陣列的長度*/

long decimal_num; /*儲存轉換成的10進製數*/

char temp[MAXCHAR]; /*儲存待轉換的數值和轉換後的數值*/

int flag = 1; /*儲存是否退出程式的標誌*/

while(flag) /*利用輸入的flag值控制迴圈是否結束*/

printf("轉換前的數是:");

scanf("%s", temp);

printf("轉換前的數制是:");

scanf("%d", &source);

printf("轉換後的數制是:");

scanf("%d", &object);

printf("轉換後的數是:");

decimal_num = source_to_decimal(temp, source);

length = decimal_to_object(temp, decimal_num, object);

output(temp, length);

printf("繼續請輸入1,否則輸入0:\n");

scanf("%d", &flag);

return 0;

/*將字元轉換成數字*/

int char_to_num(char ch)

if(ch>='0' && ch<='9')

return ch-'0'; /*將數字字元轉換成數字*/

else

return ch-'A'+10; /*將字母字元轉換成數字*/

char num_to_char(int num)

if(num>=0 && num<=9)

return (char)('0'+num-0); /*將0~9之間的數字轉換成字元*/

else

return (char)('A'+num-10); /*將大於10的數字轉換成字元*/

long source_to_decimal(char temp, int source)

long decimal_num = 0; /*儲存展開之後的和*/

int length;

int i;

for( i=0; temp[i]!='\0'; i++ );

length=i;

for( i=0; i<=length-1; i++ ) /*累加*/

decimal_num = (decimal_num*source) + char_to_num(temp[i]);

return decimal_num;

int decimal_to_object(char temp, long decimal_num, int object)

int i=0;

while(decimal_num)

temp[i] = num_to_char(decimal_num % object); /*求出餘數並轉換為字元*/

decimal_num = decimal_num / object; /*用十進位制數除以基數*/

i++;

temp[i]='\0';

return i;

void output(char temp, int length)

int i;

for( i=length-1; i>=0; i--) /*輸出temp陣列中的值*/

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

printf("\n");

CSDN,你值得擁有!

Revit 初學者應該怎麼做?

餘深海 先潑點冷水 快醒醒吧,BIM不是Revit,建築業的技術人員和管理者拿數位化的手段來進行傳統的專案工作,BIM是他們的集合,所以多努力成為技術人員和管理者,這塊的功夫要少用一點。除了專業技能外,對於初學者建議 一 熟練掌握基本的建模手法 培訓機構只是帶你入門而已,深度的東西還需要在工作中遇到...

嗨翻C語言適合初學者嗎?

CuKing 感覺挺不錯的,就是看這個入門的,有些人說知識點少,確實,不過這個也無所謂,慢慢積累就好,這書重要的是引導你程式設計,讓你知道什麼是C,什麼是程式設計,怎麼用C程式設計,而不是把C語言的所有都事無鉅細的交代給你,很適合初學。 YUER 非常精彩的一本書,然而另乙個類似問題下面的回答者全都...

C語言初學者,用什麼軟體好?

什麼好用我不知道,但是老師讓我們裝的cfree 工作之後接觸過的編輯器,功能很強大的,sublime算乙個,據說atom也厲害,不知道能不能寫c。現在我是前端,很喜歡用vscode,不知道寫c啥感覺。 狐狸少爺 vs devcpp eclipse都還行,devcpp最方便,上手簡單,也不太佔硬碟,w...