C++中怎么样把字符串转化为16进制数
4个回答
展开全部
#include <iostream>
#include <string>
using namespace std;
char getCharByValue(int value)
{
if(value>=0 && value<=9)
return '0' + value;
else if(value>=10 && value <=35)
return 'A' + (value-10);
else
return 'a' + (value-36);
}
string toHex(string str)
{
string hex="";
for(int i=0;i<str.length();i++)
{
int low = str[i]%16;
int hight = str[i]/16;
hex += string(1,getCharByValue(hight)) + string(1,getCharByValue(low));
}
return hex;
}
int main(int argc, char *argv[])
{
string str="computer";
cout << toHex(str)<<endl;
return 0;
}
#include <string>
using namespace std;
char getCharByValue(int value)
{
if(value>=0 && value<=9)
return '0' + value;
else if(value>=10 && value <=35)
return 'A' + (value-10);
else
return 'a' + (value-36);
}
string toHex(string str)
{
string hex="";
for(int i=0;i<str.length();i++)
{
int low = str[i]%16;
int hight = str[i]/16;
hex += string(1,getCharByValue(hight)) + string(1,getCharByValue(low));
}
return hex;
}
int main(int argc, char *argv[])
{
string str="computer";
cout << toHex(str)<<endl;
return 0;
}
展开全部
#include<iostream>
{char ch;
cin>>ch;
cout.sef(ios::hex);
cout<<"hex:"<<ch<<endl;
{char ch;
cin>>ch;
cout.sef(ios::hex);
cout<<"hex:"<<ch<<endl;
追问
我是要把那个16进制保存起来,比如 computer对应636F6D7075746572.。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char buf[512] = {0};
char* src = "computer";
FILE* f = fopen("save.txt", "w");
for(int i = 0; i < strlen(src); i++)
{
sprintf(buf + strlen(buf), "%.2x", src[i]);
}
fwrite(buf, strlen(buf), 1, f);
fclose(f);
char* src = "computer";
FILE* f = fopen("save.txt", "w");
for(int i = 0; i < strlen(src); i++)
{
sprintf(buf + strlen(buf), "%.2x", src[i]);
}
fwrite(buf, strlen(buf), 1, f);
fclose(f);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询