十进制转十六进制

2018-06-18 03:50:25来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

 

思路:1、正数  --> (该数%16) 余数 >= 10, 余数 < 10;

   2、负数

   3、

//十进制转化为十六进制 
//逆序存储在一个字符串数组中 
#include<stdio.h>
char* TenToSixteen(int ten){
    char str[20];
    int i = 0,w = 0,temp = ten,status;
    if(temp>= 0) status = 1;
    else status = 0;
    
    switch(status){
        case 1:    //当为正数 
            if(ten==0)     str[w++] = '0';
            else{
                while(temp> 0){
                int elem = temp%16;
                if(elem>9){
                    elem = elem -10 +'A';
                    str[w++] = elem;    
                }
                else    str[w++] = elem + '0';
                temp = temp/16;
                }
            }
            break;
            case 0:    //当为负数 
                temp = -temp;
                while(temp> 0){
                int elem = temp%16;
                if(elem>9){
                    elem = elem -10 +'A';
                    str[w++] = elem;    
                }
                else    str[w++] = elem + '0';
                temp = temp/16;
                }
                str[w++] = '-';
            break;
            default :printf("error!\n");
    }
    
//打印十六进制的数 
    for(i = w-1;i>=0;i--){
        printf("%c",str[i]);    
    }
}

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:计蒜客——字符串长度

下一篇:数据结构学习