怎么将16进制文本转化成2进制数字?
若我读到的内容是16进制:605914F05A5B267308CA0FF01D0DF120C321F588CA0274F1B2B31EB508CA004C8C,
怎么转化成2进制数字?
[解决办法]
- C/C++ code
#include<stdio.h>const char *HEX[16]= {"0000","0001","0010","0011", "0100","0101","0110","0111", "1000","1001","1010","0011", "0100","1101","1110","1111", };int main(){ const char *str="605914F05A5B267308CA0FF01D0DF120C321F588CA0274F1B2B31EB508CA004C8C"; int n=0; const char *p=str; while(*p) { sscanf(p,"%1X",&n); puts(HEX[n]); p++; } return 0;}
[解决办法]
[解决办法]
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string transferData(const string& data);
int main()
{
string filename;
cin >> filename; //输入问价路径
ifstream in(filename.c_str());
while(!in.eof(), in >> filename)
{
string data = filename;
string getdata = data.substr(4, 100);
string dddd = transferData(getdata);
cout << dddd;
}
return 0;
}
string transferData(const string& data)
{
string returndta = "";
for(int i = 0; i < data.length(); i++)
{
switch(data[i])
{
case '0':
returndta += "0000";
break;
case '1':
returndta += "0001";
break;
case '2':
returndta += "0010";
break;
case '3':
returndta += "0011";
break;
case '4':
returndta += "0100";
break;
case '5':
returndta += "0101";
break;
case '6':
returndta += "0110";
break;
case '7':
returndta += "0111";
break;
case '8':
returndta += "1000";
break;
case '9':
returndta += "1001";
break;
case 'A':
returndta += "1010";
break;
case 'B':
returndta += "1011";
break;
case 'C':
returndta += "1100";
break;
case 'D':
returndta += "1101";
break;
case 'E':
returndta += "1110";
break;
case 'F':
returndta += "1111";
break;
}
}
return returndta;
}