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

作者简介:大家好,我是Ceylan_,可以叫我CC ??
个人主页:Ceylan_的博客
博主信息:平凡的大一学生,有着不平凡的梦
专栏
  • 【备战蓝桥,冲击省一】
?希望大家多多支持一起进步~??
若有帮助,还请关注?点赞?收藏,不行的话我再努努力
备战蓝桥|备战蓝桥,冲击省一 进制转换 你不会还不会吧()
文章图片

目录
其他进制转换成十进制
实现思路
二进制转换成十进制
八进制转换成十进制
十六进制转换成十进制
十进制转换成其他进制
实现思路
十进制转成二进制
十进制转成八进制
十进制转成十六进制
每日金句
其他进制转换成十进制 实现思路 实现原理
从最低位开始,把每一位上的数提取出来,乘上进制数,然后求和。
【备战蓝桥|备战蓝桥,冲击省一 进制转换 你不会还不会吧()】算法分析
1??从最低位开始一位一位进行判断,有两种情况,第一种为数字,第二种为字母
2??为数字时,答案等于前一次判断的答案 * 进制加上这一位的数字
3??为字母时,答案等于前一次判断的答案 * 进制加上这一位的字母减去'A'加10
图解原理
备战蓝桥|备战蓝桥,冲击省一 进制转换 你不会还不会吧()
文章图片

二进制转换成十进制 代码演示
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; }

每日金句
生活是一面镜子。你对它笑,它就对你笑; 你对它哭,它也对你哭
备战蓝桥|备战蓝桥,冲击省一 进制转换 你不会还不会吧()
文章图片

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

    推荐阅读