当前位置: 首页 > news >正文

不同进制的数据展示(十进制、十六进制、编码方式)

目录

1、十六进制的数值转为十进制(可能是补码)

2、十进制转为十六进制(负数要转为补码)


背景:

       (1) 接收到通讯的数据,把数据读取出来,并转成自己想要的格式。

        (2)数值展示,要是负数的话,是以补码的形式显示;

1、十六进制的数值转为十进制(可能是补码)

eg:拿到的数据为:0xFF 0x9B

int hexToSignedInt(const QString &hexStr, int bitWidth)
{QByteArray byteArray = QByteArray::fromHex(hexStr.toUtf8());quint64 unsignedVal = 0;for (const auto &byte : byteArray) {unsignedVal = (unsignedVal << 8) | static_cast<quint64>(byte);}if (bitWidth < 8 * sizeof(unsignedVal)) {unsignedVal &= (1ULL << (bitWidth)) - 1; // 截断高位}bool isNegative = (unsignedVal >> (bitWidth - 1)) & 1;return isNegative ? (unsignedVal - (1ULL << bitWidth)) : unsignedVal;
}//实例
hexToSignedInt("FF9B", 32);
2、十进制转为十六进制(负数要转为补码)

eg:拿到的数据为:-10

QString binaryToHexQt(const QString &binaryStr)
{QString hexStr;int len = binaryStr.length();// 从右向左每4位分组处理for (int i = len; i > 0; i -= 4){int startPos = qMax(0, i - 4);QString chunk = binaryStr.mid(startPos, i - startPos);// 二进制转十进制int decimalValue = 0;for (int j = 0; j < chunk.length(); j++){decimalValue = (decimalValue << 1) | (chunk[j].toLatin1() - '0');}// 十进制转十六进制字符hexStr.prepend(QString("%1").arg(decimalValue, 0, 8).toUpper());}return hexStr;
}//实例:-10 转为十六进制:FFF6
binaryToHexQt("FFF6");

未完待续。。。

http://www.xdnf.cn/news/471871.html

相关文章:

  • 理解 Viewport:让网页在手机端正确显示的秘诀
  • 星形测试卡:射线摄影获取焦点星卡射线照片的工具
  • win11安装Joplin Server私有化部署(docker)
  • 【应急响应工具教程】Windows日志快速分析工具——Chainsaw
  • 数智管理学(九)
  • MySQL 8.0 OCP 1Z0-908 题目解析(4)
  • Process exited with an error: 1 (Exit value: 1) 问题处理
  • Element Plus 取消el-form-item点击触发组件,改为原生表单控件
  • Seata源码—3.全局事务注解扫描器的初始化一
  • 5月15日day26打卡
  • 计量经济学——预测与chow检验
  • 以项目的方式学QT开发(三)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
  • C++ QT图片查看器
  • 软件设计师考试《综合知识》软件过程模型考点分析——求三连
  • 044-代码味道-数据类
  • 【YOLO 系列】基于YOLO的道路坑洞检测识别系统【python源码+Pyqt5界面+数据集+训练代码】
  • SWMM相关文档共享
  • BUUCTF——shrine
  • 牛客网 NC22167: 多组数据a+b
  • 差分振荡器:支持0.15ps超低抖动的高速时钟核心
  • 腾讯AI军备极速扩张
  • LCD电视LED背光全解析:直下式 vs 侧光式、全局调光 vs 局部调光与HDR体验
  • (6)python开发经验
  • hbit资产收集工具Docker(笔记版)
  • 电商热销榜的5种实现方案
  • [python] Python元组、字典与集合的全面解析
  • Linux常用命令41——passwd修改用户的密码值
  • OpenCV光流估计:原理、实现与应用
  • 深度解析物理机服务器故障修复时间:影响因素与优化策略
  • Linux常用的性能分析工具