请用c语言代码表示一下
时间: 2023-08-01 07:06:16 浏览: 43
好的,以下是使用 C 语言实现进制转换的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 将无符号整数转换为二进制表示
void decToBin(unsigned int num, char *buf) {
int i = 0;
do {
buf[i++] = num % 2 + '0';
num /= 2;
} while (num != 0);
buf[i] = '\0';
strrev(buf); // 反转字符串
}
// 将无符号整数转换为八进制表示
void decToOct(unsigned int num, char *buf) {
int i = 0;
do {
buf[i++] = num % 8 + '0';
num /= 8;
} while (num != 0);
buf[i] = '\0';
strrev(buf); // 反转字符串
}
// 将无符号整数转换为十六进制表示
void decToHex(unsigned int num, char *buf) {
int i = 0;
do {
int digit = num % 16;
if (digit < 10) {
buf[i++] = digit + '0';
} else {
buf[i++] = digit - 10 + 'A';
}
num /= 16;
} while (num != 0);
buf[i] = '\0';
strrev(buf); // 反转字符串
}
// 将二进制字符串转换为十进制整数
unsigned int binToDec(char *bin) {
unsigned int dec = 0;
int len = strlen(bin);
for (int i = len - 1, j = 1; i >= 0; i--, j *= 2) {
dec += (bin[i] - '0') * j;
}
return dec;
}
// 将八进制字符串转换为十进制整数
unsigned int octToDec(char *oct) {
unsigned int dec = 0;
int len = strlen(oct);
for (int i = len - 1, j = 1; i >= 0; i--, j *= 8) {
dec += (oct[i] - '0') * j;
}
return dec;
}
// 将十六进制字符串转换为十进制整数
unsigned int hexToDec(char *hex) {
unsigned int dec = 0;
int len = strlen(hex);
for (int i = len - 1, j = 1; i >= 0; i--, j *= 16) {
if (hex[i] >= '0' && hex[i] <= '9') {
dec += (hex[i] - '0') * j;
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
dec += (hex[i] - 'A' + 10) * j;
} else if (hex[i] >= 'a' && hex[i] <= 'f') {
dec += (hex[i] - 'a' + 10) * j;
}
}
return dec;
}
int main() {
unsigned int num;
char buf[32];
printf("请输入一个无符号整数:");
scanf("%u", &num);
decToBin(num, buf);
printf("二进制表示:%s\n", buf);
decToOct(num, buf);
printf("八进制表示:%s\n", buf);
decToHex(num, buf);
printf("十六进制表示:%s\n", buf);
printf("请输入一个二进制字符串:");
scanf("%s", buf);
printf("转换为十进制整数:%u\n", binToDec(buf));
printf("请输入一个八进制字符串:");
scanf("%s", buf);
printf("转换为十进制整数:%u\n", octToDec(buf));
printf("请输入一个十六进制字符串:");
scanf("%s", buf);
printf("转换为十进制整数:%u\n", hexToDec(buf));
return 0;
}
```
以上代码实现了将无符号整数转换为二进制、八进制和十六进制表示,以及将二进制、八进制、十六进制字符串转换为十进制整数的功能。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)