设计字符串的拂去,字符串的遍历,还有ASCii 码。十进制和十六进制转换的相关知识。
1: 十六进制转化为10 进制
#include
#include
#include
/* 返回ch字符在sign数组中的序号 */
int getIndexOfSigns(char ch);
int main()
{
printf("Input a string: ");
char str2[30] = {0};
int sum=0,t=0;
scanf("%s", str2);
for(int i=strlen(str2)-1;i>=0;i--){
sum+=pow(16,t)*getIndexOfSigns(str2[i]) ;
t=t+1;
}
printf(" sum=%d",sum);
return 0;
}
int getIndexOfSigns(char ch){
if(ch>='a' && ch<='f')
return ch-'a'+10;
if(ch<='F' && ch>='A')
return ch-'A'+10;
if(ch<='9' && ch>='0')
return ch-'0';
return -1;
}
2:10 进制转化为16进制
#include
#include
#include
int main(){
printf(" please input the num: ");
int num,index=0;
char ans[10];
scanf("%d",&num);
if(num==0) printf(" the hex: 0");
else{
int a=num;
// printf("%d",a);
while(a){
int b =a%16;
printf("b=%d\n",b);
if(b>=10){
ans[index]='A'+b-10;
// printf("ans:%s",ans[index]);
}
else if (b<10)
{
ans[index]='0'+b;
// printf("ans:%c ",ans[index]);
}
a=a/16;
index++;
// printf("a=%d " ,a);
}
}
for(int i=index-1;i>=0;i--)
printf("%c",ans[i]);
return 0;
}