我是靠谱客的博主 快乐柜子,最近开发中收集的这篇文章主要介绍【C语言】 任意十进制数字转十六进制【C语言】 任意十进制数字转十六进制 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

转载自:【C语言】 任意十进制数字转十六进制 - 金舰 - 博客园大概思路:输入任意十进制数字 首先确定位数; 使用整形数组来存储十六进制数; a[0] 表示十六进制数字的位数; 最终效果:https://www.cnblogs.com/tao-zhu-forever/p/9126890.html

【C语言】 任意十进制数字转十六进制 

大概思路:
输入任意十进制数字 首先确定位数;

使用整形数组来存储十六进制数; a[0] 表示十六进制数字的位数;

复制代码

#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 10
int* ahex(int dec){
    int n=1;
    int m=16;
    int *a;
    a = (int*)malloc(sizeof(int)*MAXSIZE+1);
    while(dec >= m)
    {
        m = m*16;
        n++;
    }
    //printf("位数:%dn",n);
    *a = n;
    while(n>0)
    {
         *(a+n)= dec/(m/16);
         dec = dec-*(a+n)*(m/16);
         n--;
         m = m/16;

    }
    return a;
}

void print_hex(int *p){
    int n = *p;
    printf("hex: 0x");
    while(n>0)
    {
        switch(*(p+n)){
            case 10:printf("A");break;
            case 11:printf("B");break;
            case 12:printf("C");break;
            case 13:printf("D");break;
            case 14:printf("E");break;
            case 15:printf("F");break;
            default: printf("%d",*(p+n));break;
        }
        n--;
    }
    printf("n");
}
int main()
{
    int rec=0;
    int *p;
    while(1){
        printf("请输入一个十进制数字:");
        scanf("%d",&rec);
        p = ahex(rec);
        print_hex(p);
    }
    return 0;
}

复制代码

最终效果:

最后

以上就是快乐柜子为你收集整理的【C语言】 任意十进制数字转十六进制【C语言】 任意十进制数字转十六进制 的全部内容,希望文章能够帮你解决【C语言】 任意十进制数字转十六进制【C语言】 任意十进制数字转十六进制 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(103)

评论列表共有 0 条评论

立即
投稿
返回
顶部