c语言计算二进制十进制十二进制十六进制的相互转化
时间: 2024-10-10 20:01:20 浏览: 49
在C语言中,我们可以使用基本的数学运算和位操作来实现二进制、十进制、十二进制和十六进制之间的转换。以下是简单的步骤:
1. **二进制转十进制**:
- 使用`for`循环,从右向左每位乘以2的幂次方,加起来得到十进制数。
2. **十进制转二进制**:
- 对于整数,可以使用`while`循环和` bitwise AND`操作,不断除以2并取余,直到商为0。
3. **十进制转十二进制/十六进制**:
- 可以先转为二进制再转,因为计算机内部就是用二进制表示的,然后用对应的基数(16或12)逐位计算每一位的值。
4. **十二进制/十六进制转十进制**:
- 同样需要先将非基数数字(如A=10, B=11等)转换成对应的二进制,然后累加计算。
5. **二进制/十六进制转**:
- 十六进制可以直接通过ASCII码表或者预设的映射表进行转换,二进制则先转为十进制再转十六进制。
下面是一个简单的示例函数,用于十进制转其他进制:
```c
#include <stdio.h>
#include <string.h>
// 十进制转二进制
void dec_to_bin(int decimal) {
char binary[32];
int i = 0;
while (decimal > 0) {
binary[i++] = decimal % 2 + '0';
decimal /= 2;
}
binary[i] = '\0';
printf("Binary: %s\n", binary);
}
// 十进制转十六进制
void dec_to_hex(int decimal) {
char hex[10];
sprintf(hex, "%X", decimal);
printf("Hexadecimal: %s\n", hex);
}
int main() {
int num = 123; // 任意十进制数
dec_to_bin(num); // 转二进制
dec_to_hex(num); // 转十六进制
return 0;
}
```
阅读全文