200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > C语言八进制 十进制 十六进制的输入输出与转化

C语言八进制 十进制 十六进制的输入输出与转化

时间:2022-03-11 11:50:08

相关推荐

C语言八进制 十进制 十六进制的输入输出与转化

1.输入与输出

输入时八进制需要添加‘0’前缀,十六进制需要添加‘0X’前缀

演示代码如下:

#include<stdio.h>int main(){int a,b,c;scanf("%o",&a);//08scanf("%d",&b);//10scanf("%x",&c);//16printf("%o %o %o\n",a,b,c);printf("%d %d %d\n",a,b,c);printf("%x %x %x\n",a,b,c);return 0;}

举例结果如下:

2.转化举例(十六进制转八进制)

#include<iostream>#include<string>using namespace std;int main(){string s1,s2;int n;int i,j,k;cin>>n;for(i=0;i<n;i++){cin>>s1;s2="";for(j=0;j<s1.length();j++){switch(s1[j]){case '0':s2+="0000";break;case '1':s2+="0001";break;case '2':s2+="0010";break;case '3':s2+="0011";break;case '4':s2+="0100";break;case '5':s2+="0101";break;case '6':s2+="0110";break;case '7':s2+="0111";break;case '8':s2+="1000";break;case '9':s2+="1001";break;case 'A':s2+="1010";break;case 'B':s2+="1011";break;case 'C':s2+="1100";break;case 'D':s2+="1101";break;case 'E':s2+="1110";break;case 'F':s2+="1111";break;default:break;}}if(s2.length()%3==1)s2="00"+s2;if(s2.length()%3==2)s2="0"+s2;int flag=0;for(k=0;k<s2.length()-2;k+=3){int p=4*(s2[k]-'0')+2*(s2[k+1]-'0')+s2[k+2]-'0';if(p)flag=1;if(flag)cout<<p;} cout<<endl;} return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。