2进制转化为16进制

#include <iostream>
#include <string>
#include <vector>
using namespace std;

char sixteen[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int main()
{
 int iCount;
 cin>>iCount;
 while(iCount--)
 {
  string str;
  cin>>str;
  if(str.size()%4!=0)
   str.insert(0,4-str.size()%4,'0');//将0插入‘0’前面中,当不等于4时//
  for(int i=0; i<str.size()/4; i++)
   cout<<sixteen[(str[i*4]-'0')*8+(str[i*4+1]-'0')*4+(str[i*4+2]-'0')*2+str[i*4+3]-'0'];
  cout<<endl;
 }
 return 0;
}

 

 

posted @ 2012-04-04 20:37  逝者*恋世  阅读(163)  评论(0编辑  收藏  举报