回覆列表
-
1 # 現在答題全靠運氣的
-
2 # 偶得866
#include <stdio.h>
void main(){
char s[80];
int i,x;
gets(s);
x=0;
i=0;
while(s[i]){
if (s[i]<="9" && s[i]>="0") x=x*16 + s[i] - "0";
else if (s[i]<="F" && s[i]>="A") x=x*16 + 10 + s[i] - "A";
else if (s[i]<="f" && s[i]>="a") x=x*16 + 10 + s[i] - "a";
i++;
}
printf("%d\n",x);
}
程式除錯透過,但是輸入的資料不要太大哦,例如輸入AAAAAA,這樣系統內部的int型別裝不下,需要自定義大資料型別來表示。
參考程式碼:
#include<stdio.h>
void main()
{
char str[81];
int sum=0,i=0;
gets(str);
while(str[i])
{
if(str[i]>="a" && str[i]<="f")
str[i]-=32;
if(str[i]>="0" && str[i]<="9")
sum=sum*16+str[i]-"0";
if (str[i]>="A" && str[i]<="F")
sum=sum*16+str[i]-"A"+10;
i++;
}
printf("hex=%d\n",sum);
}