用c语言写一个函数,输入两个一百位长整数,将他们分别转化成二进制和十六进制输出
时间: 2024-02-13 12:02:23 浏览: 87
C实现十进制至十六进制的转换
4星 · 用户满意度95%
好的,以下是用C语言实现的函数:
```c
#include <stdio.h>
#include <string.h>
void convert(char num[]) {
long long decimal = 0, binary = 0, hex = 0;
int i, j;
int len = strlen(num);
// 将字符串形式的数字转化为十进制
for (i = 0; i < len; i++) {
decimal = decimal * 10 + (num[i] - '0');
}
// 将十进制转化为二进制
for (i = 0; decimal > 0; i++) {
binary += (decimal % 2) * (1 << i);
decimal /= 2;
}
// 将十进制转化为十六进制
for (i = 0; decimal > 0; i++) {
hex += (decimal % 16) * (1 << (4 * i));
decimal /= 16;
}
// 输出结果
printf("Binary: %lld\n", binary);
printf("Hexadecimal: %lld\n", hex);
}
```
你可以将两个一百位长整数以字符串的形式作为参数传递给该函数,例如:
```c
char num1[] = "12345678901234567890123456789012345678901234567890123456789012345678901234567890";
char num2[] = "98765432109876543210987654321098765432109876543210987654321098765432109876543210";
convert(num1);
convert(num2);
```
然后你就可以得到两个字符串所代表的数字的二进制和十六进制表示了。
阅读全文