我是靠谱客的博主 妩媚大碗,最近开发中收集的这篇文章主要介绍任意进制转换(c语言),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

用函数实现将任意两种进制的数制相互转换。

输入格式:

输入在一行给出三个整数,第1个数为原数的进制(正整数),第2数为原数(或正或负整数),第3个数为需转换的进制(正整数)。

输出格式:

输出转换后的数。

样例1">样例1">样例1">输入样例1:

在这里给出一组输入。例如:

8 76541 16

输出样例1:

在这里给出相应的输出。例如:

7D61

输入样例2:

在这里给出一组输入。例如:

2 -10111100 10

输出样例2:

在这里给出相应的输出。例如:

-188

 

#include<stdio.h>
int main()
{
int old,now;//初始进制/目标进制
char a[100];//数组
scanf("%d %s %d", &old,a,&now);
int shi = 0;//十进制
int quan = 1;//权
int temp = 0;//计算每位的值
int cont = 0;//新数组位数
int fu = 1;
for (int i = strlen(a)-1; i >= 0; i--)//转换为十进制
{
if (a[i] >= '0' && a[i] <= '9')
temp = a[i] - '0';
else if (a[i] >= 'A' && a[i] <= 'Z')
temp = a[i] - 'A' + 10;
else
{
fu = -1;
break;
}
shi += temp * quan;
quan *= old;
}
while (shi)//转换为目标进制
{
temp = shi % now;
shi /= now;
if (temp >= 10)
a[cont] = temp - 10 + 'A';
else
a[cont] = temp + '0';
cont++;
}
if (fu == -1)
printf("-");
for (int i = cont-1; i >= 0; i--)
printf("%c", a[i]);
}

最后

以上就是妩媚大碗为你收集整理的任意进制转换(c语言)的全部内容,希望文章能够帮你解决任意进制转换(c语言)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部