注册 登录
编程论坛 C语言论坛

求助:这16进制怎么解?

妖妖零 发布于 2022-09-14 19:58, 1013 次点击
【描述】
BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!
编写程序,读入这个错误的十进制数,然后输出正确的十进制数。
【输入】
在一行中给出一个[0,153]范围内的正整数,保证能转换回有效的BCD数,即这个整数转换成十六进制时不会出现A~F的数字。
【输出】
对应的十进制数。
【输入示例】

18
【输出示例】
12
2 回复
#2
apull2022-09-14 21:16
程序代码:

int main()
{
    int n, a, b, c;
    scanf("%d", &n);
    a = n / 16;
    b = n % 16;
    c = a * 10 + b;
    printf("%d\n", c);
    return 0;
}

#3
妖妖零2022-09-15 08:55
谢谢大佬
1