这段2进制转16进制哪里错了啊
vector<char> zhuan16(int a[])
{
int s=0;
int k=0;
for(int i=8;i>=1;i--) s+=(a[i]*pow(2,k++));
vector<char> v(10,'0');
int len=0;
while(s)
{
int f=s%16;
s/=16;
if(f>9)
switch(f)
{
case 10:v[++len]='A';break;
case 11:v[++len]='B';break;
case 13:v[++len]='C';break;
case 14:v[++len]='D';break;
case 15:v[++len]='E';break;
}
else v[++len]=f+'0';
}
reverse(v.begin()+1,v.end()+1);
return v;
}