C 语言中的十六进制转十进制

17 Mar 2025 | 阅读 2 分钟

什么是十六进制?

十六进制也称为基数 16,它是一种使用 16 个符号(0-9 和 A-F)来表示特定值的数字系统。

什么是十进制?

十进制是表示整数和非整数的数字系统。这个数字系统也称为基数 10 系统,它使用 10 个符号(0-9)来表示特定值。

十六进制到二进制的转换

我们知道十六进制数包含 16 个符号,即 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,其中 A,B,C,D,E,F 分别代表 (10,11,12,13,14,15) 的值。我们可以通过从十六进制数中提取数字,并从数字的最右边一位开始,找到十进制数。十六进制数的每个数字都乘以基数 16。我们将此乘法的结果存储在一个特定变量中。

让我们通过一个例子来理解。

如果十六进制数是 5A,那么它的十进制值将是

十进制值 = 5*161 + 10*160
                         = 90

现在,我们通过图解方式理解十六进制数转换为十进制数

Hexadecimal to Decimal in C

在上面的图中,我们考虑 2AB 作为十六进制数并计算了它的十进制值。

2AB(十六进制值)= 2*162 + 10*161, + 11*160
                                           = 683(十进制值)

让我们通过程序来理解。

在上面的程序中,我们找到了给定十六进制数的十进制数。在上面的例子中,我们从用户那里获取输入并将其值存储在 hex 变量中。从用户那里检索输入后,我们计算输入的长度并将其存储在 len 变量中。我们已经遍历了十六进制数的每个数字,并将最终结果存储在 decimal_value 变量中

输出

Hexadecimal to Decimal in C