llllmz

导航

405. 数字转换为十六进制数c

]

不简单的题目。

char change(int n){
    if(n<=9) return n+'0';
    return n-10+'a';
}

void reverse(char* array,int n){
    int head=0,tail=n-1;
    while(head<=tail){
        char c=array[head];
        array[head]=array[tail];
        array[tail]=c;
        head++;
        tail--;
    }
}

char * toHex(int num){
    if(num==0) return "0";
    char* array=(char*)malloc(sizeof(char)*10);
    for(int i=0;i<10;i++) array[i]=0;
    int count=0;
    unsigned t =(unsigned)num;
    while(t!=0){
        int temp=t%16;
        array[count++]=change(temp);
        t/=16;
    }
    reverse(array,strlen(array));
    return array;
}

 

posted on 2024-03-20 15:58  神奇的萝卜丝  阅读(52)  评论(0)    收藏  举报