本文共 1073 字,大约阅读时间需要 3 分钟。
在项目中需要使用C++将汉字与十六进制互相转换,举例:
在UE上打“中国人”得到十六进制是“D6D0B9FAC8CB0D0A”,这是如何转换的,以及如何将char str[]=”D6D0B9FAC8CB0D0A”; 换成汉字放在 char[10]={0}这个数组中呢?#include#include #include #include using namespace std;unsigned char ch2hex(char ch) { static const char *hex="0123456789ABCDEF"; for(unsigned char i=0;i!=16;++i) if(ch==hex[i]) return i; return 0; }char* solve(char *dest,const char *src) { int i=0; int cnt=0; unsigned char*d=(unsigned char*)dest; while(*src) { if(i&1) { d[cnt++]|=ch2hex(*src); } else { d[cnt]=ch2hex(*src)<<4; } src++; i++; } return dest; }string tohex(const string& str) { string ret; static const char *hex="0123456789ABCDEF"; for(int i=0;i!=str.size();++i) { ret.push_back(hex[(str[i]>>4)&0xf]); ret.push_back( hex[str[i]&0xf]); } return ret; }int main() { cout< <
参考文献:
转载地址:http://diqqf.baihongyu.com/