p1143 进制转换c语言
时间: 2023-12-02 08:42:02 浏览: 69
c语言实现进制转换
以下是p1143 进制转换c语言的代码实现和解释:
```c
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
char a[100];
int b, len, i, sum = 0, j = 0, c[100];
scanf("%s %d", a, &b); // 输入需要转换的数和目标进制
len = strlen(a); // 获取输入数的长度
for(i = len - 1; i >= 0; i--) // 逆序遍历输入数
{
if(isdigit(a[i])) // 判断是否为数字
{
c[j] = a[i] - '0'; // 转换成数
}
else // 是字母
{
c[j] = (a[i] - 'A') + 10; // 转换成数,记得 + 10
}
sum += c[j] * pow(b, j); // 转换成十进制数
j++;
}
j = 0;
while(sum) // 转换成目标进制
{
c[j] = sum % b;
sum /= b;
j++;
}
for(i = j - 1; i >= 0; i--) // 逆序输出结果
{
if(c[i] < 10)
{
printf("%d", c[i]); // 输出数字
}
else
{
printf("%c", c[i] - 10 + 'A'); // 输出字母
}
}
return 0;
}
```
阅读全文