我在写一道十六进制转八进制的题,
我写的源代码如下
#include
#include
#include
using namespace std;
int main{
int n;//输入的十六进制的个数n
string s[10];//用于存储十六进制数的string型数组
cin>>n;
int i,j;
for(i=0;i<n;i++)//分别输入十六进制数
{
cin>>s[i];
}
for(i=0;i<n;i++)
{
long core=0;//存储十进制数
string flag;//声明一个用于存储转化后的八进制数的变量
for(j=0;j<6;j++)//使用按权展开法转换成十进制
{
if(s[i][j]<=9)
core+=s[i][j]*16^j;
if(s[i][j]=”A”)
core+=10*16^j;
if(s[i][j]=”B”)
core+=11*16^j;
if(s[i][j]=”C”)
core+=12*16^j;
if(s[i][j]=”D”)
core+=13*16^j;
if(s[i][j]=”E”)
core+=14*16^j;
if(s[i][j]=”F”)
core+=15*16^j;
}
j=0;
while(core>=8)//使用辗转相除法转化二进制
{
flag[j]=core%8;
core=(core-flag[j])/8;
j++;
}
cout<<flag;//输出八进制数
}
return 0;
}
最后提示了很多错误,
用互联网查了很久都找不到答案,寻求大佬们的帮助。