备战蓝桥,冲击省一 进制转换 你不会还不会吧?

作者简介:大家好,我是Ceylan_,可以叫我CC ❣️    
个人主页:Ceylan_的博客
博主信息:平凡的大一学生,有着不平凡的梦

         专栏

  • 【备战蓝桥,冲击省一】

⚡希望大家多多支持一起进步~❤️
若有帮助,还请关注点赞收藏,不行的话我再努努力

备战蓝桥,冲击省一 进制转换 你不会还不会吧?_第1张图片

目录

其他进制转换成十进制

实现思路

二进制转换成十进制

八进制转换成十进制

十六进制转换成十进制

十进制转换成其他进制

实现思路 

十进制转成二进制

十进制转成八进制

十进制转成十六进制

每日金句


其他进制转换成十进制

实现思路

实现原理

从最低位开始,把每一位上的数提取出来,乘上进制数,然后求和。

算法分析

1️⃣从最低位开始一位一位进行判断,有两种情况,第一种为数字,第二种为字母

2️⃣为数字时,答案等于前一次判断的答案 * 进制加上这一位的数字

3️⃣为字母时,答案等于前一次判断的答案 * 进制加上这一位的字母减去'A'加10

图解原理

备战蓝桥,冲击省一 进制转换 你不会还不会吧?_第2张图片

二进制转换成十进制

代码演示

int main()    
{
	string s;
	cin>>s;           //二进制数
	int ans=0;
	for(int i=0;i

八进制转换成十进制

代码演示

int main()    
{
	string s;
	cin>>s;        //8进制数
	int ans=0;
	for(int i=0;i

十六进制转换成十进制

代码演示

int main()    
{
	string s;
	cin>>s;            //16进制数
	int ans=0;
	for(int i=0;i='0'&&t<='9') ans=ans*16+t-'0';
		else ans=ans*16+t-'a'+10;
	}
	cout<< ans;
}

十进制转换成其他进制

实现思路 

实现原理

将该数不断除以该进制,直到商为0停止,最后将每步得到的数倒过来,就是答案了

算法分析

1️⃣将该数除以该进制,得到的商有两种情况,第一种情况为0-9,第二种情况为 >9

2️⃣商是 0-9 时,直接记录,进行下一次相除

3️⃣商 >9 时,更改为字母形式,进行下一次相除

4️⃣商为 0 时停止,翻转结果,得到答案

图解原理

这里有一个十进制数【30】,要求转换成二进制数。

30除以2,得到商0,数变成15

15除以2,得到商1,数变成7

7除以2,得到商1,数变成3

3除以2,得到商1,数变成1

1除以2,得到商1,数变成0

停止操作,将得到的商翻转,得到【30】的二进制数【11110】

十进制转成二进制

代码演示

int main()    
{
	int n;
	cin>>n;			//十进制数 
	string ans="";
	do
	{
		int t=n%2;
		ans+=t+'0';
		n/=2;
	}while(n!=0);	
	reverse(ans.begin(),ans.end());
	cout<< ans;	
}

十进制转成八进制

代码演示

int main()    
{
	int n;
	cin>>n;			//十进制数 
	string ans="";
	do
	{
		int t=n%8;
		ans+=t+'0';
		n/=8;
	}while(n!=0);	
	reverse(ans.begin(),ans.end());
	cout<< ans;	
}

十进制转成十六进制

  代码演示

int main()    
{
	int n;
	cin>>n;			//十进制数 
	string ans="";
	do
	{
		int t=n%16;
		if(t>=0&&t<=9)	ans+=t+'0';
		else ans+=t-10+'a';
		n/=16;
	}while(n!=0);	
	reverse(ans.begin(),ans.end());
	cout<< ans;	
}

每日金句

生活是一面镜子。你对它笑,它就对你笑;你对它哭,它也对你哭

     本人不才,如有错误,欢迎各位大佬在评论区指正。有帮助的话还请【关注点赞收藏】,不行的话我再努努力

你可能感兴趣的:(备战蓝桥,蓝桥杯,算法,c语言,c++,数据结构)