C语言二进制转八、十、十六进制代码实现
时间: 2024-11-25 10:08:51 浏览: 57
在C语言中,你可以使用标准库函数`itoa()`、`sprintf()`或者手动转换来进行二进制、八进制、十进制和十六进制之间的转换。以下是各自的示例:
1. **二进制转八、十、十六进制**:
- 使用`itoa()`和`printf()`组合:
```c
#include <stdio.h>
#include <stdlib.h>
// 将二进制数转换成字符串
char* binary_to_hex(int num) {
char hex[17]; // 预留空间,最多16位加上前导零
sprintf(hex, "%08x", num); // 添加前导零确保4字节长度
return hex;
}
int main() {
int binary = 42; // 示例二进制数
printf("Binary to Hex: %s\n", binary_to_hex(binary));
return 0;
}
```
2. **八进制转十、十六进制**:
- 直接使用`printf()`或`itoa()`函数,不需要特别处理,因为它们会自动识别并转换相应的进制。
3. **十六进制转十进制**:
- 你可以将十六进制字符串转换为整数,如:
```c
char hex_str[] = "A9"; // 示例十六进制字符串
int decimal = strtol(hex_str, NULL, 16); // 第三个参数指定进制为16
printf("Hex to Decimal: %d\n", decimal);
```
注意:`itoa()`函数在某些编译器(如Windows的MSVC)中不是标准库的一部分,需要额外安装库支持,或者使用第三方库(如`libitoc`)。
阅读全文
相关推荐

















