C 语言:从十进制到十六进制转换函数316


在程序设计中,经常需要将十进制数转换为十六进制数。在 C 语言中,提供了标准库函数 itoa() 和 sprintf() 来完成此项任务。## 1. itoa() 函数

itoa() 函数将一个整数转换为其对应的字符串表示形式。要将十进制数转换为十六进制数,可以使用以下语法:```c
char *itoa(int num, char *str, int base);
```
* num:要转换的十进制整数。
* str:指向要存储转换后的十六进制字符串的缓冲区。
* base:要使用的进制(本例中为 16)。

itoa() 函数返回指向转换后字符串的指针。如果转换成功,则返回值不为 NULL。否则,返回 NULL。## 2. sprintf() 函数

sprintf() 函数将一系列参数格式化并写入提供的缓冲区中。它可以用于将十进制数转换为十六进制数,语法如下:```c
int sprintf(char *str, const char *format, ...);
```
* str:指向要存储格式化输出的缓冲区。
* format:用于指定格式的字符串,其中包含格式化说明符 %x。
* ...:要格式化的变量列表。

要将十进制数转换为十六进制数,可以使用以下格式说明符:```c
%x:小写十六进制数
%X:大写十六进制数
```

例如,要将十进制数 12345 转换为十六进制数,可以使用以下代码:```c
char str[20];
sprintf(str, "%x", 12345);
```

转换后的十六进制字符串存储在 str 数组中。## 范例

以下是一个 C 语言程序,展示如何使用 itoa() 和 sprintf() 函数将十进制数转换为十六进制数:```c
#include
#include
int main() {
int num = 12345;
char str[20];
// 使用 itoa() 函数
itoa(num, str, 16);
printf("使用 itoa(): %s", str);
// 使用 sprintf() 函数
sprintf(str, "%x", num);
printf("使用 sprintf(): %s", str);
return 0;
}
```

输出:```
使用 itoa(): 3039
使用 sprintf(): 3039
```

2024-11-21


上一篇:C 语言中十进制转十六进制的函数

下一篇:十六进制转十进制:C 语言函数指南