实现十进制无符号整数m到十六进制数的转换功能

时间:2022-06-01 22:14:47

/*
利用顺序栈结构,编写算法函数void Dto16(unsigned int m)实现十进制无符号整数m到十六进制数的转换功能。
*/
/**********************************/
/*文件名称:lab4_01.c                 */
/**********************************/
#include "seqstack.h"
/*请将本函数补充完整,并进行测试*/
void Dto16(int m)
{   seqstack s; /*定义顺序栈*/
    init(&s);
    printf("十进制数%u对应的十六进制数是:",m);
    char *p="0123456789abcdef";
    while (m)
    {
        push(&s,p[m%16]);
        m/=16;
    }
    while (!empty(&s))
        putchar(pop(&s));
    printf("\n");
}
int main()
{    int m;
     printf("请输入待转换的十进制数:\n");
     scanf("%u",&m);
     Dto16(m);
     return 0;
}

/*
利用链式栈结构,编写算法函数void Dto16(unsigned int m)实现十进制无符号整数m到十六进制数的转换功能。
*/
/**********************************/
/*文件名称:lab4_02.c */
/**********************************/
#include "linkstack.h"
/*请将本函数补充完整,并进行测试*/
void Dto16(unsigned int m)
{
linkstack s;
s=init();
printf("十进制数%u对应的十六进制数是:",m);
char *a="0123456789ABCDEF";
while (m)
{
s=push(s,a[m%16]);
m=m/16;
}
while (!empty(s))
{
putchar((char)read(s));
s=pop(s);
}
printf("\n");
}

int main()
{
unsigned int m;
printf("请输入待转换的十进制数:\n");
scanf("%u",&m);
Dto16(m);
return 0;
}