在C中将char hex转换为char dec

时间:2017-12-20 22:50:15

标签: c

我希望以这种方式将存储在变量类型unsigned char中的值转换为小数:

unsigned char hexValue = 0x0C;

我希望将hexValue转换为" dec"中的新unsigned char格式如下:

unsigned char decValue = 0x12; //Ox0C

我尝试了sprintf()strtol()但没有取得好成绩。

1 个答案:

答案 0 :(得分:3)

有时候,理解价值与表现之间的差异会让人感到困惑。所以,请考虑以下代码:

#include <stdio.h>

int main(void) {
    unsigned char hexVal = 0x0C;
    unsigned char dec = hexVal;
    printf("\nValue expressed in decimal: %d and in hexadecimal: %x", dec,dec);
    return 0;
}

请参阅live code

它在第一个赋值语句中表达了十进制为十六进制的概念。当将hexVal分配给变量dec时,分配的值是以二进制格式存储的值10。因为dec已经是变量,所以不需要sprintf()。然后,您可以使用格式说明符将十进制值表示为十进制或另一个基数。在这种情况下。该值表示为小数。