C语言 函数 无符号16进制0x12345690002342 转10进制为 12345690002342 代码
时间: 2024-09-11 14:03:19 浏览: 63
C语言数字ASCII转换成16进制互转.c
5星 · 资源好评率100%
C语言中,将十六进制数转换成十进制可以使用标准库函数`strtoul`或`strtol`。这里是一个示例代码片段,它展示了如何实现这个转换:
```c
#include <stdio.h>
#include <stdlib.h>
// 十六进制转十进制
unsigned long long hex_to_decimal(const char *hex_num) {
unsigned long long decimal = strtoull(hex_num, NULL, 16); // 使用16作为基数
return decimal;
}
int main() {
const char *hex_str = "0x12345690002342";
unsigned long long decimal_value = hex_to_decimal(hex_str);
printf("无符号16进制 %s 转换为10进制是:%llu\n", hex_str, decimal_value);
return 0;
}
```
这段代码首先包含必要的头文件,然后定义了一个名为`hex_to_decimal`的函数,该函数接受一个字符串指针并返回其对应的十进制值。在`main`函数中,我们将给定的十六进制字符串传递给`hex_to_decimal`,然后打印出结果。
请注意,由于输入的是无符号整数,所以返回的结果`decimal_value`也是一个无符号长整型`unsigned long long`。
阅读全文