码迷,mamicode.com
首页 > 其他好文 > 详细

十进制转十六进制

时间:2018-04-07 19:05:51      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:思路   打印   进制   efault   --   十进制   cas   char   while   

 

思路: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]);    
    }
}

 

十进制转十六进制

标签:思路   打印   进制   efault   --   十进制   cas   char   while   

原文地址:https://www.cnblogs.com/jiaoqiang/p/8733826.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!