10進位和16進位的數的轉換
[心得]
1.%X 可以直接將10進位的數以16進位形式輸出
2.isalpha()配合#include <ctype.h>
3.atoi()配合#include <stdlib.h>,直接把字串中的數字轉成int
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main()
{
char input[10000];
int d,h;
int len,i;
while(gets(input))
{
if(input[0]=='-') break;
len=strlen(input);
d=0;
if(input[1]=='x')
{
for(i=2;i<len;i++)
{
if(isalpha(input[i]))
input[i]=input[i]-55;
else input[i]=input[i]-48;
d=d*16+input[i];
}
printf("%d\n",d);
}
else
{
h=atoi(input);
printf("0x%X\n",h);
}
}
return 0;
}
留言列表