任意进制之间的相互转换

news/2025/2/23 22:10:54
进过一段时间的研究,现在终于明白任意进制之间是如何转换的,现在就来给你分享。
解题思路:
比如说将一个n进制的数转换为m进制的数,这个过程需要一个过渡,就是现将一个n进制
的数转换为10进制,再将十进制数转换为m进制的数,任意进制转换为十进
制的思路就是按权展开,十进制转任意进制就是求余数,直到商数为零,然后逆向取余。
代码实现如下:
#include<stdio.h>
int main()
{
	int i,j,k=0,num,sum=0,n,m,d;
	char str[2000],str1[2000];
	scanf("%s",str);//输入要转换的数,并存储在字符串数组中
	scanf("%d%d",&n,&m);//输入这个数本身的进制数,和要求转换成的进制数
	for(i=0;str[i]!='\0';i++)
	{
		if(str[i]>='0'&&str[i]<='9')//将每一个数找出
			num=str[i]-'0';
		else
			num=str[i]-'a'+10;
		sum=sum*n+num;
	}
	while(sum)
	{
		d=sum%m;
		str1[k++]="0123456789abcdef"[d];/*这里其实还有一种方法就是判断余数与10的大小关系,如果余数大于等于十将这个数字加上87(若字母为大写就加55)转化为对应的字母,若为数字就按此方发存入数组。*/
		sum/=m;
	}
	for(i=k-1;i>=0;i--)
	{
		if(str1[i]>='0'&&str1[i]<='9')
			printf("%d",str1[i]-'0');
		else
			printf("%d",str1[i]-'a'+10);
	}
	return 0;
}

http://www.niftyadmin.cn/n/709933.html

相关文章

11 蜜蜂飞舞

11 蜜蜂飞舞 作者: Turbo时间限制: 1S章节: 基本练习&#xff08;循环&#xff09; 问题描述 : “两只小蜜蜂呀&#xff0c;飞在花丛中呀……” 话说这天天上飞舞着两只蜜蜂&#xff0c;它们在跳一种奇怪的舞蹈。用一个空间直角坐标系来描述这个世界&#xff0c;那么这两只…

中工校赛总结

这次参加中工的校赛&#xff0c;最大的感觉就是特别倒霉&#xff0c;在热身赛上&#xff0c;比赛已经开始了我的账号一直登不上&#xff0c;当时就非常气氛&#xff0c; 然而这个教室值日的人当时没看见&#xff0c;过了好久巡查的人过来了&#xff0c;然后我才问他我的账号为啥…

12 学做菜

12 学做菜 作者: Turbo时间限制: 1S章节: 基本练习&#xff08;循环&#xff09; 问题描述 : 涛涛立志要做新好青年&#xff0c;他最近在学做菜。由于技术还很生疏&#xff0c;他只会用鸡蛋&#xff0c;西红柿&#xff0c;鸡丁&#xff0c;辣酱这四种原料来做菜&#xff0c;…

用顺序结构实现对二叉树的三种遍历方式

#include<stdio.h> int a[20],n; //创建二叉树 void creat(int b) {int i;for(i1;i<b;i)a[i]i; } //先序遍历 void xianxu(int a) {if(a<n){printf("%d ",a);//三种遍历都是采用的递归的思想。xianxu(2*a);//当根节点输出之后&#xff0c;就找出根节点所…

如何判断Oracle DB是归档还是非归档模式,如何切换

查看oracle日志模式&#xff1a;archive log list修改oracle日志模式&#xff1a; 1&#xff0c;关闭数据库&#xff1a;shutdown immediate; 2&#xff0c;启动数据库实例到mount状态&#xff1a;startup mount; 3&#xff0c;切换数据库日志模式&#xff1a; alter database …

21 谁是老二?

21 谁是老二&#xff1f; 作者: Turbo时间限制: 1S章节: 一维数组 问题描述 : 一维数组中存储不超过100个整型数据&#xff0c;请找出其中第二大的元素&#xff0c;输出这些元素的值以及它们的下标。 注意&#xff0c;由于元素值可能相同&#xff0c;因此具有最大值的元素个…

DijKstra算法——单源最短路径的理解

/*单元最短路径&#xff0c;这个算法的思想就是每次先找到离原点最近的点&#xff0c;然后以这个点为基础扩展&#xff0c; 然后比较原点到扩展点的距离与原点到最点的距离加上最近点的距离到扩展点的距离&#xff0c; 如果大于的话就需要跟新原来dis中的距离*/ #include<st…

【工具使用系列】关于 MATLAB 过程控制,你需要知道的事

2019独角兽企业重金招聘Python工程师标准>>> 如何进行过程控制 什么是过程控制 转载于:https://my.oschina.net/shamrocks/blog/1618301