<分区>
我想以这种方式将存储在变量类型 unsigned char
中的值转换为小数:
unsigned char hexValue = 0x0C;
我想将 hexValue
转换成一个新的 unsigned char
格式如下:
unsigned char decValue = 0x12; //Ox0C
我尝试了 sprintf()
和 strtol()
但没有很好的结果。
标签 c
<分区>
我想以这种方式将存储在变量类型 unsigned char
中的值转换为小数:
unsigned char hexValue = 0x0C;
我想将 hexValue
转换成一个新的 unsigned char
格式如下:
unsigned char decValue = 0x12; //Ox0C
我尝试了 sprintf()
和 strtol()
但没有很好的结果。
最佳答案
有时,理解值和表示之间的区别可能会让人感到困惑。因此,请考虑以下代码:
#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() 。然后,您可以使用格式说明符将十的值表示为十进制或其他基数。在这种情况下。该值以小数形式表示。
关于在 C 中将 char hex 转换为 char dec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47915474/