我希望以这种方式将存储在变量类型unsigned char
中的值转换为小数:
unsigned char hexValue = 0x0C;
我希望将hexValue
转换为" dec"中的新unsigned char
格式如下:
unsigned char decValue = 0x12; //Ox0C
我尝试了sprintf()
和strtol()
但没有取得好成绩。
答案 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()。然后,您可以使用格式说明符将十进制值表示为十进制或另一个基数。在这种情况下。该值表示为小数。