用C语言实现数制的转换
时间: 2024-10-12 09:06:19 浏览: 62
用栈实现数制转换 c语言
在C语言中,实现数制转换通常涉及到整型数据类型的进制转换,包括从十进制转成其他进制(如二进制、八进制、十六进制),以及从其他进制转回十进制。这里简述一种常见的方法:
1. 十进制转二进制/八进制/十六进制:
- 使用库函数 `itoa` 和 `atol` 或者 `strtol` 来将十进制字符串转换成对应的表示形式。例如:
```c
#include <stdio.h>
int main() {
char binary[50];
int decimal = 42;
itoa(decimal, binary, 2); // 转换成二进制
printf("Decimal %d in binary is: %s\n", decimal, binary);
}
```
2. 其他进制转十进制:
- 通过循环和数学运算逐位相加完成。例如,对于二进制到十进制:
```c
int decFromBin(char* binStr) {
int len = strlen(binStr), decimal = 0, base = 1;
for (int i = len - 1; i >= 0; i--) {
if (binStr[i] == '1') decimal += base;
base *= 2;
}
return decimal;
}
```
阅读全文