很方便的c++字符串转换为16进制
密码学中常常需要用到字符串转换为十六进制,进而转换为二进制进行加密
鉴于网上搜的很多方法都有些复杂,很多名为c++,实则只是套了个c++的壳子,写的还是c语言的内容,并没有体现出c++语言本身的一些特色,我自己常识写了个字符串转成十六进制的函数,以之备忘。
需要用到的是ios::base中的hex,有时通过流进行数据处理,很多事情会变得异乎寻常的方便
具体代码如下:
string string_to_hex(const string& str) //transfer string to hex-string { string result="0x"; string tmp; stringstream ss; for(int i=0;i<str.size();i++) { ss<<hex<<int(str[i])<<endl; ss>>tmp; result+=tmp; } return result; }
上述代码是将字符串转换为16进制,并将该16进制数用string保存起来,如果要将字符串里的16进制数字直接变为long long形,可直接使用c语言中的strtoll函数
long long string_to_bit(const string& str)//transfer hex-string to bit { long long result=strtoll(str.c_str(), NULL, 16);//第三个参数base为合法字符范围,base=2,为0、1,base=16,合法字符则为0-F,开头的0x自动忽略 return result; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: php定时自动执行需要触发一次(后台执行)
- 下一篇: pandas教程:[5]读取csv数据