以下是基于51单片机的C语言代码,实现了以十六进制打印整数的函数:

void print_hex(unsigned int num)
{
    unsigned char buf[4];
    unsigned char i;

    buf[0] = (num >> 12) & 0x0F;
    buf[1] = (num >> 8) & 0x0F;
    buf[2] = (num >> 4) & 0x0F;
    buf[3] = num & 0x0F;

    for (i = 0; i < 4; i++)
    {
        if (buf[i] < 10)
        {
            putchar(buf[i] + '0');
        }
        else
        {
            putchar(buf[i] - 10 + 'A');
        }
    }
}

函数的参数为一个无符号整数,函数内部将这个整数转换为四个十六进制数字,存储在一个字符数组中,再逐个将字符打印出来。如果数字小于10,则将其转换为对应的ASCII码字符,否则将其转换为对应的十六进制大写字母。注意,这个函数使用了 putchar 函数来打印字符,因此需要先在程序中定义 putchar 函数。


原文地址: https://www.cveoy.top/t/topic/nCDt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录