C语言十进制和二进制的转换
时间: 2024-09-28 21:05:18 浏览: 38
C语言 进制转换
在C语言中,我们可以使用标准库提供的函数来进行十进制数(decimal)和二进制数(binary)之间的转换。这里介绍两种基本的方法:
1. **整型转换**:
- **转换为二进制**: 使用`bitset`或`itoa`函数结合字符串操作。例如:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void decimalToBinary(int num) {
char binary[32]; // 假设数字最多32位
sprintf(binary, "%b", num);
printf("二进制表示: %s\n", binary);
}
int main() {
decimalToBinary(10); // 输出: 二进制表示: 1010
return 0;
}
```
- **转换为十进制**: 将二进制字符串解析为整数,可以手动逐位相加或者用`strtol`函数。例如:
```c
char binary[] = "1010";
int decimal = strtol(binary, NULL, 2);
printf("十进制表示: %d\n", decimal);
```
2. **浮点型转换**:
对于浮点数,由于精度限制,直接转换可能不可行。可以先将浮点数转换为整数部分和小数部分,然后分别处理。
注意,在C99及以上版本,还可以使用`<inttypes.h>`中的`PRId64`、`PRIo64`等宏来格式化输出整数到二进制,或者使用`htonll`和`ntohl`函数进行网络字节序和主机字节序之间的转换。
阅读全文