首页 > 编程知识 正文

八进制十六进制转换成十进制,十进制二进制八进制十六进制转换方法

时间:2023-05-06 11:37:08 阅读:254540 作者:927

在十六进制转为八进制的过程中包含了将十六进制转化为二进制以及将二进制转化为八进制!

我自己测试是没什么问题,但是在蓝桥杯官网的测试系统就显示运行错误qwq
不知道为什么
附代码:

#include<iostream>#include<string.h>using namespace std;int main(){string code1(char p);string code2(char a,char b,char c);int i,n,j,flag;cin>>n;string sixteen[n],two[n],eight[n];char twoo[n][1000],eightt[n][1000];int len1[n],len2[n];for(i=0;i<n;i++)cin>>sixteen[i];for(i=0;i<n;i++){len1[i] = sixteen[i].length();for(j=0;j<len1[i];j++)two[i] = two[i] + code1(sixteen[i][j]);len2[i] = two[i].length();for(j=0;j<=len2[i];j++)twoo[i][j] = two[i][j];if(len2[i]%3==1){for(j = len2[i]+1;j>=0;j--)twoo[i][j] = twoo[i][j-2];twoo[i][1] = twoo[i][0] = '0';}if(len2[i]%3==2){for(j = len2[i];j>=0;j--)twoo[i][j] = twoo[i][j-1];twoo[i][0] = '0';}for(j=0;j<len2[i];j=j+3)eight[i] = eight[i] + code2(twoo[i][j],twoo[i][j+1],twoo[i][j+2]);for(j=0;j<len2[i];j++)eightt[i][j] = eight[i][j];for(j=0;j<eight[i].length();j++)if(eight[i][j]!='0'){flag = j;break;}for(j=flag;j<eight[i].length();j++)cout<<eight[i][j];cout<<endl;}return 0;}string code2(char a,char b,char c){if(a=='0'&&b=='0'&&c=='0') return("0");if(a=='0'&&b=='0'&&c=='1') return("1");if(a=='0'&&b=='1'&&c=='0') return("2");if(a=='0'&&b=='1'&&c=='1') return("3");if(a=='1'&&b=='0'&&c=='0') return("4");if(a=='1'&&b=='0'&&c=='1') return("5");if(a=='1'&&b=='1'&&c=='0') return("6");if(a=='1'&&b=='1'&&c=='1') return("7");}string code1(char p){if(p == '0') return("0000");if(p == '1') return("0001");if(p == '2') return("0010");if(p == '3') return("0011");if(p =='4') return("0100");if(p == '5') return("0101");if(p == '6') return("0110");if(p == '7') return("0111");if(p == '8') return("1000");if(p == '9') return("1001");if(p == 'A') return("1010");if(p == 'B') return("1011");if(p == 'C') return("1100");if(p == 'D') return("1101");if(p == 'E') return("1110");if(p == 'F') return("1111");}

还有十六进制转化为十进制的,这个就比较简单了

#include<stdio.h>#include<string.h>#include<math.h>int main(){long long sum=0;char pp[100];scanf("%s",&pp);int len;len = strlen(pp);for(int i=0;i<len;i++){if(pp[i]>='0'&&pp[i]<='9')sum = sum + (pp[i]-48)*pow(16,len-i-1);if(pp[i] == 'A')sum = sum + 10*pow(16,len-i-1);if(pp[i] == 'B')sum = sum + 11*pow(16,len-i-1);if(pp[i] == 'C')sum = sum + 12*pow(16,len-i-1);if(pp[i] == 'D')sum = sum + 13*pow(16,len-i-1);if(pp[i] == 'E')sum = sum + 14*pow(16,len-i-1);if(pp[i] == 'F')sum = sum + 15*pow(16,len-i-1); } printf("%I64d",sum);return 0; }

最近一直在划水,我的300元报名费要打水漂了xbdfh

阿诺德渲染器gpu需要学习么?win7电脑文件夹如何加密

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。