C++语言题目

2025-04-08 07:35:41
推荐回答(1个)
回答1:

#include
#include
using namespace std;
bool checkHex(string str)
{
int length=str.size();
for(int i=0;i {
if((str[i]<'0' || str[i]>'9') && (str[i]<'a' || str[i]>'f') && (str[i]<'A' || str[i]>'F'))
return false;
}
return true;
}
int toDecimal(string hex)
{
int length=hex.size();
int result=0;
for(int i=0;i {
int n=0;
if(hex[i]>='0' && hex[i]<='9') n=hex[i]-'0';
else if(hex[i]>='a' && hex[i]<='f') n=hex[i]-'a'+10;
else if(hex[i]>='A' && hex[i]<='F') n=hex[i]-'A'+10;
result+=(int)(n*pow(16,length-i-1));
}
return result;
}
int main()
{
int n;
cin>>n;
string str;
for(int i=0;i {
cout<<"\t";
cin>>str;
if(!checkHex(str))
{
cout<<"输入的不是正确的十六进制数,请重输入!"< i--;
continue;
}
int num=toDecimal(str);
char ch[20];
_itoa_s(num,ch,8);
cout< }
return 0;
}