用c语言函数实现10进制数向2、8、16进制数的转换
时间: 2024-11-30 14:14:48 浏览: 13
在C语言中,我们可以创建三个独立的函数分别用于将10进制整数转换为2、8和16进制数。这里是一个简单的示例:
1. **转二进制** (Base 2)
```c
#include <stdio.h>
#include <stdlib.h>
void decimalToBinary(int dec) {
unsigned int binary[32], i = 0;
while (dec > 0) {
binary[i] = dec % 2;
dec = dec / 2;
i++;
}
printf("Binary representation: ");
for (int j = i - 1; j >= 0; j--)
printf("%d", binary[j]);
}
```
2. **转八进制** (Base 8)
```c
void decimalToOctal(int dec) {
char octal[11];
int index = 0;
while (dec > 0) {
octal[index++] = dec % 8 + '0';
dec = dec / 8;
}
if(index == 0) {
printf("Octal representation: 0");
} else {
printf("Octal representation: ");
for (int i = index - 1; i >= 0; i--) {
printf("%c", octal[i]);
}
}
}
```
3. **转十六进制** (Base 16)
```c
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void decimalToHexadecimal(int dec) {
char hex[17];
int i = 0;
while (dec > 0) {
hex[i++] = (dec % 16) + '0';
if (hex[i - 1] > '9') {
hex[i - 1]++;
}
if (hex[i - 1] > 'F') {
hex[i - 1] += 7;
}
dec = dec / 16;
}
if (i == 0) {
printf("Hexadecimal representation: 0");
} else {
printf("Hexadecimal representation: ");
for (int j = i - 1; j >= 0; j--) {
printf("%c", hex[j]);
}
}
}
// 示例调用
int main() {
int num = 12345;
printf("Decimal number: %d\n", num);
decimalToBinary(num);
decimalToOctal(num);
decimalToHexadecimal(num);
return 0;
}
```
每个函数会接受一个十进制整数作为输入,并返回相应的进制表示。
阅读全文