在 C 中将 char hex 转换为 char dec

标签 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/

相关文章:

c - 在堆栈和堆上创建的变量的生命周期之间的区别?

c - C中的Knuth列表插入方法

c - 为什么这个程序在使用大字符串时不能给出正确的结果?

c++ - 使用 openssl/md5 的意外 MD5 哈希值

Card of Decks 进行特定规模的交易 C 语言

c++ - #define X X 在 C 中的作用是什么?

c - Linux 零拷贝 : Transfer memory pages between two processes with vmsplice

c - 为什么我不能以这种方式复制终止空值?

c - 该位运算符代码是副作用(K&R C 书中使用的术语)还是依赖于机器的处理指令?

c - 生产者消费者问题中的竞争条件