C++整型转16进制字符串或16进制字符串转整型-创新互联
前言:整数转16进制字符串,网上大部分的资料都是要传入16进制字符串的位数,有点麻烦。本文介绍的方法自动确定返回的字符串的位数,位数为最小偶数。偶数位方便使用时转成字节数组(unsigned char[]),这样就可以传输了。
创新互联提供成都网站设计、成都网站建设、网页设计,品牌网站制作,广告投放等致力于企业网站建设与公司网站制作,十多年的网站开发和建站经验,助力企业信息化建设,成功案例突破上千,是您实现网站建设的好选择.一、16进制字符串转整型
int hexStrToInt(string hexStr)
{
return stoi(hexStr, 0, 16);
}
二、整型转16进制字符串
string intToHexStr(int mask) {
// 最终16进制字符串长度为偶数
int hexLen = 0;
if (mask >INT_MAX) {
return "00";
}
// 根据数值的大小决定16进制字符串的个数
for (int i = 2; i<= 6; i += 2) {
string hex = "";
for (int j = 0; j< i; j++) {
hex += "F";
}
if (mask<= hexStrToInt(hex)) {
hexLen = i;
break;
}
}
// 最长8位, INT_MAX = 2147483647, 16进制字符串为:7FFFFFFF
if (hexLen == 0) {
hexLen = 8;
}
//16进制字符集
string hexes[16] = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
string hexstring = "";
for (int i = 0; i< hexLen; i++){
int j = hexLen - i - 1;
// 按顺序取4bit数
int number = (mask >>4 * j) & 0xf;
hexstring += hexes[number];
}
return hexstring;
}
整型转16进制字符串有参考这篇文章:2021.9.9 解决c++整数转化为16进制字符串问题_MoonByulStar的博客-博客_c++整型转16进制
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文标题:C++整型转16进制字符串或16进制字符串转整型-创新互联
标题来源:http://ybzwz.com/article/djdoop.html