二进制值和十六进制字符串相互转换的C++代码
来源:互联网 发布:知乎自媒体平台 编辑:程序博客网 时间:2024/05/19 19:41
#include <iostream>#include <string>#include <stdint.h>using namespace std;string BinToHex(const string &strBin, bool bIsUpper = false){ string strHex; strHex.resize(strBin.size() * 2); for (size_t i = 0; i < strBin.size(); i++) { uint8_t cTemp = strBin[i]; for (size_t j = 0; j < 2; j++) { uint8_t cCur = (cTemp & 0x0f); if (cCur < 10) { cCur += '0'; } else { cCur += ((bIsUpper ? 'A' : 'a') - 10); } strHex[2 * i + 1 - j] = cCur; cTemp >>= 4; } } return strHex;}string HexToBin(const string &strHex){ if (strHex.size() % 2 != 0) { return ""; } string strBin; strBin.resize(strHex.size() / 2); for (size_t i = 0; i < strBin.size(); i++) { uint8_t cTemp = 0; for (size_t j = 0; j < 2; j++) { char cCur = strHex[2 * i + j]; if (cCur >= '0' && cCur <= '9') { cTemp = (cTemp << 4) + (cCur - '0'); } else if (cCur >= 'a' && cCur <= 'f') { cTemp = (cTemp << 4) + (cCur - 'a' + 10); } else if (cCur >= 'A' && cCur <= 'F') { cTemp = (cTemp << 4) + (cCur - 'A' + 10); } else { return ""; } } strBin[i] = cTemp; } return strBin;}int main(){ string strBin = "!@#$%^&*()_+~`1234567890-="; string strHex = "21402324255E262A28295F2B7E60313233343536373839302D3D"; string strBinToHex = BinToHex(strBin); cout << strBinToHex << endl; strBinToHex = BinToHex(strBin, true); cout << strBinToHex << endl; string strHexToBin = HexToBin(strHex); cout << strHexToBin << endl; return 0;}
0 0
- 二进制值和十六进制字符串相互转换的C++代码
- 二进制值和十六进制字符串相互转换的C++代码
- [手游新项目历程]第6天-二进制值和十六进制字符串相互转换的C++代码
- 十六进制的字符串与二进制字符串相互转换
- Object-c 普通字符串、二进制、十进制、十六进制之间的相互转换
- iOS十六进制和字符串的相互转换
- 十六进制和字符串的相互转换
- JAVA 字符串与二进制,十六进制 相互转换
- 十六进制和字符串相互转换
- 二进制、八进制、十进制和十六进制之间的相互转换(正数)!
- 二进制十六进制相互转换
- 二进制 八进制 十六进制 之间的相互转换
- C语言十六进制数据同字符串的相互转换
- C语言十六进制数据同字符串的相互转换
- C语言十六进制数据同字符串的相互转换
- C语言十六进制数据同字符串的相互转换
- (学习笔记) Java byte[]转二进制字符串,十六进制字符串的相互转换
- 利用栈实现二进制转换十六进制的完整C代码
- iOS生成服务器端的推送证书
- Unix时间戳转换(python)
- 蓝桥杯练习系统(算法训练)-ALGO-2最大最小公倍数
- XCode小道
- 【代码练习】学生成绩排名--涉及IO流和集合
- 二进制值和十六进制字符串相互转换的C++代码
- hdoj 1702 ACboy needs your help again!
- hdu 2082 找单词 母函数
- 关于swt 和一些小技巧
- Chapter 7 String to Integer
- LeetCode 7 反转数字
- jdk的配置与测试
- codeforces round# 302 (div1 C) (状压dp)
- 数据库Sharding的基本思想和切分策略