前言:整数转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进制字符串转整型-创新互联
本文链接:https://www.cdcxhl.com/article8/djdoop.html
成都网站建设公司_创新互联,为您提供网页设计公司、企业建站、微信小程序、静态网站、网站营销、网站策划
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联