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;
}

創作者介紹
創作者 RingsACM 的頭像
RingsACM

Ring's ACM

RingsACM 發表在 痞客邦 留言(0) 人氣()