寫函式,輸入十六進位制數,輸出相應的十進位制數

時間 2022-07-01 10:55:14

1樓:

#include

int power(int x,int n);

void main()

cout<<"轉化成十進位制是:"<

}int power(int x,int n)我除錯過了,沒有錯誤,結果正確,我的程式要求輸入的是8位。

2樓:ad饕饕不絕

#include

char he[105];

void main()

//每次乘16 ,如果是k進位制就乘k

3樓:匿名使用者

int x;

scanf("%x",&x);

...printf("%d",x);

4樓:謝禮官

付費內容限時免費檢視

回答根據你的問題,你的**中就只有一個change函式沒有實現,具體實現方法有多種形式,我這裡選擇我認為最簡單的一種方式將其實現如下:

int change(char *hx)

將該函式放到你的main函式的前面即可。

提問可我敲了**並不能執行出來

你人呢更多8條

5樓:聖文介幻露

#include

"stdio.h"

main()

d[i]='\0';

/*陣列最後一個元素賦』\0』

*/dec=htod(d);

/*呼叫轉換函式*/}

printf("the

decimal

number

is%ld\n",dec);

printf("continue?

y/n");

scanf("%2c",&loop);}}long

htod(charde)

c語言:寫一函式,輸入一個十六進位制數,輸出相應的十進位制數。

6樓:問明

#include

#include

#include

int main()

char a[10];

void convert(char a);

printf("請輸入十六進位制數:");

gets(a);//輸入十六進位制數

convert(a);

return 0;

void convert(char a)

int n,i,num=0;

n=strlen(a);

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

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

num+=(a-'0')*pow(16,n-1-i);

else if(a>='a'&&a<='z')num+=(10+(a-'a'))*pow(16,n-1-i);

else if(a>='a'&&a<='z')num+=(10+(a-'a'))*pow(16,n-1-i);

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

printf("%d",num);

7樓:匿名使用者

#include

#include

void main()

void fun(char array[100]){int sum=0,i;

for(i=0;i

8樓:子同

#include

#include

#define n 100

void main()

int fun(char *array)

return sum;

}執行結果

9樓:風若遠去何人留

有幾個問題

一個是函式宣告不對

函式呼叫有問題

判斷數值臨界不準,沒有包含==的情況

演算法可以寫的簡單一點

最終優化如下

#include

#include

void main()

void fun(char array[100])printf("%d",sum);}

10樓:凌空血舞

double fun(u8 *array)

return sum;}

寫一個函式,輸入一個十進位制數,輸出相應的十六進位制數

11樓:讕股縛

#include"stdio.h"main()d[i]='\0';/*陣列最後一個元素賦』\0』*/dec=htod(d);/*呼叫轉換函式

12樓:謝禮官

回答根據你的問題,你的**中就只有一個change函式沒有實現,具體實現方法有多種形式,我這裡選擇我認為最簡單的一種方式將其實現如下:

int change(char *hx)

將該函式放到你的main函式的前面即可。

提問可我敲了**並不能執行出來

你人呢更多8條

c語言 寫一個函式 輸入一個十六進位制數 輸出相應的十進位制

13樓:萬能導師

#包括< stdio, h >

h#包括< math.h >

# include < string。h >

intmain()

char[10]。

void轉換(char[]a);

printf(「輸入十六進位制數:」);

(一);輸入一個十六進位制數

轉換(a);

返回0;

void轉換(char[]a)

intn,i,num=0;

n=strlen(a);

對於(i = n - 1;i > = 0;我)

如果(a < i > > = '0' & a < i > < = '9')

num + = (a < i > - '0') * pow (16, n - 1 - i);

否則(a < i > > = 'a' && a < i > < = 'z')

num + =(10 +(《我》 - a)) *戰俘(16 n - 1 - i);

否則(a < i > > = 'a' && a < i > < = 'z')

num + =(10 +(《我》 - a)) *戰俘(16 n - 1 - i);

printf(「將小數轉換為:」);

printf("%d",num);

14樓:匿名使用者

1、一個數的每一位都有一個權值,例如十進位制數2039,它可以表示為:2*10^3+0*10^2+3*10^1+9*10^0。那麼任何進位制的數都一樣,例如16進位制數8a30e,它就是8*16^4+10*16^3+3*16^2+0*16^1+14*16^0=566030,算出來的值就是這個數對應的十進位制數。

又例如k進位制數abcdef(這是一個6位數),它就是a*k^5+b*k^4+c*k^3+d*k^2+e*k^1+f*k^0。

2、例程:

#include

int main()

int shiliu(char *x)

return (n);}

15樓:匿名使用者

首先解釋你的函式部分 exchange(char a):

語句 if((a[i]>='0')&&(a[i]<='9')) n=n*16+a[i]-'0';

因為16進位制的整數基數位為0,1,2***,9,a,b,c,d,e,f總共16個字元,從10-15為字元型(字元部分不區分大小寫)。因此要進行數制轉換就首先要將字元轉換成對應的資料,即將字元後自帶的 \0字元去掉。

flag和flag1的作用是標記資料轉換是否正常進行

16樓:匿名使用者

將你以字元形式輸入的16進位制數逐位換算為10進位制,其實它的功能就是實現下面這個表

0 -》0

1 -》1.。

。a -》10

b -》11.。

。f -》15

17樓:小花

/*寫一個函式,輸入一個十六進位制數,輸出相應的十進位制數。*/#include

#include

#include

int main()

void turn(char n)

else if(n[i]>='a'&&n[i]<='f')else if(n[i]>='a'&&n[i]<='f')}printf("%d\n",s);}

18樓:鷹弈

flag,flag1是標誌變數,主要用於控制迴圈,比如說

if(flag)a=100;

flag=1,條件為真,繼續執行內的語句,在執行a=100;

flag=0,條件為假,不執行{}內的語句,直接執行a=100;

a[i]表示0,1,...,e(e),f(f)的acsii碼,a[i]='a(a)',a[i]-'a(a)'的意思是將char轉變為int,舉個例子:

a[i]=『a』,字元a的acsii碼是65,那麼a[i]-『a』+10=10(int);

a[i]=『b』,字元b的acsii碼是66,那麼a[i]-『a』+10=11(int);

...a[i]=『0』,那麼a[i]-'0'=0(int);

a[i]='1',那麼a[i]-'0'=1(int);

...if((a[i]>='0')&&(a[i]<='9')) n=n*16+a[i]-'0';

if((a[i]>='a')&&(a[i]<='f')) n=n*16+a[i]-'a'+10;

if((a[i]>='a')&&(a[i]<='f')) n=n*16+a[i]-'a'+10;

這就是十六轉十的一種方法,你記住就行了,不用過多的追究。

19樓:匿名使用者

#include

#define n1 1000

void main()

else if(flag==1)}}

}int exchange(char a)return(n);}

c語言寫一個函式,輸入一個十六進位制數,輸出相應的十進位制數

20樓:蓉雪球

反問你一復

個問題:如果你輸入

制的是baiint型,那麼怎麼會有字元型的出來呢du?

可以參考一zhi下別人寫的代

dao碼:

#include

#include

void main()

void fun(char array[100]){int sum=0,i;

for(i=0;i

21樓:匿名使用者

不用轉換copy直接輸出就可

以了int main()

22樓:淦秀榮義雁

intmain()

//朋友說下,du

你那個進位制轉換函式,zhi要麼輸出十進位制數的每一位,dao要麼返回十進位制啊

23樓:陀樹枝農卿

整個就這麼長……

#include

"stdafx.h"

#include

"stdio.h"//

void

main(void)

24樓:禮染莫未

說明trans()

函式bai

應該返回n

(return

n;)du

intmain()

25樓:匿名使用者

#include

void main( void )

執行結果:

enter an hex number :

0xffff

the decimal number is: 65535請按任意鍵回繼續

答. . .

26樓:江偉

/*按要求,輸入輸出都在子函式中進行*/

#include

void fun(void)

int main(void)

27樓:

int lox_16,lox_10;

cin>>hex>>lox_16; //c中用(來scanf())輸入的是4位16進位制

源數bai

du//將16進位制數轉換為10進位制數 注意lox_16已經為16進位制數

lox_10=lox_16/1000*pow(10,3)+lox_16/100%10*pow(10,2)+lox_16%100/10*pow(10,1)+lox_16%10*pow(10,0); //lox_16 是4位的,zhi

不是4位,可以自己以dao這種形式編一個迴圈

關於printf函式輸出十六進位制數和八進位制數的問題

滿意請採納喲 1 如果使用變數名a和b來進行操作的話,則實際上我們使用的是變數a,b中存放的值,而printf函式也恰恰只是想把a,b的值輸出到顯示卡,最終由顯示卡顯示出來,所以不需要加字首 2 scanf之所以需要字首是因為,當使用 a,b的時候,此時使用的是a,b的地址,而scanf也恰恰是想要...

什麼是「十六進位制」,什麼是十六進位制數的標準表示方法

要想學漢化就必需要懂得十六進位制!下面是幾種進位制的計算方式 十進位制 有10個基數 0 9 逢十進一 二進位制 有2 個基數 0 1 逢二進一 八進位制 有8個基數 0 7 逢八進一 十六進位制 有16個基數 0 9,a,b,c,d,e,f a 10,b 11,c 12,d 13,e 14,f 1...

C語言中十六進位制數,C語言 十六進位制怎麼輸出?

嗯,沒聽懂什麼意思。c語言中的十六進位制數用0x表示十六進位制數。比如說,0x20表示的就是十六進位制數20 若在彙編中則表示為 20h 二進位制數表示為 00100000b 十進位制即為,0 16 0 2 16 1 32 整型資料的十六進位制數表示,unsigned int hex val 0x1...