Qt:十六进制字符串和十六进制互转

  • 前言
  • 一、字符串转换十六进制
    • 1、封装函数
    • 2、函数调用示例
  • 二、16进制转换字符串

前言

网上查了不少方式,踩了不少坑,最终这个方式是我目前使用感觉较好的一种,具体出处已经没印象了,这里放出完整代码供大家参考

一、字符串转换十六进制

1、封装函数

//数据转换 字符串转十六进制
void uart::StringToHex(QString str, QByteArray &senddata)
{int hexdata,lowhexdata;int hexdatalen = 0;int len = str.length();senddata.resize(len/2);char lstr,hstr;for(int i=0; i<len; ){hstr=str[i].toLatin1();if(hstr == ' '){i++;continue;}i++;if(i >= len)break;lstr = str[i].toLatin1();hexdata = convertHexChart(hstr);lowhexdata = convertHexChart(lstr);if((hexdata == 16) || (lowhexdata == 16))break;elsehexdata = hexdata*16+lowhexdata;i++;senddata[hexdatalen] = (char)hexdata;hexdatalen++;}senddata.resize(hexdatalen);
}//数据转换 字符串转16进制数据处理
char uart::convertHexChart(char ch)
{if((ch >= '0') && (ch <= '9'))return ch-0x30;  // 0x30 对应 ‘0’else if((ch >= 'A') && (ch <= 'F'))return ch-'A'+10;else if((ch >= 'a') && (ch <= 'f'))return ch-'a'+10;elsereturn ch-ch;//不在0-f范围内的会发送成0
}

2、函数调用示例

QString getmacS = ui->tableWidget->item(i,0)->text();      // 取出字符串
QByteArray getmacB;                                         // 创建QByteArray数组
uart1->StringToHex(getmacS,getmacB);                     // 字符串转换16进制

二、16进制转换字符串

// savemacB为需要转换的16进制字节数组 QByteArray 类型QString savemacS;                                 // 定义转换后的字符串
QDataStream out(&savemacB,QIODevice::ReadOnly);     // 将字节数组读入while(!out.atEnd())                                   // 循环进行转换
{qint8 outChar = 0;out>>outChar;                                 // 每字节填充一次,直到结束//十六进制的转换QString str = QString("%1").arg(outChar&0xFF,2,16,QLatin1Char('0'));savemacS.append(str.toUpper());                 // 转换后数据存入savemacS.append(" ");                           // 每转换2字节加一个空格隔开
}

Qt:十六进制字符串和十六进制互转相关推荐

  1. 十六进制字符串与中文互转

    十六进制字符串与中文互转 前言:有时候在做数据分析的时候会遇到一些二进制数据文件或者在进行tcp/udp通信的时候经常需要把数据转化成字节数据,其中包含了中文数据,但网上查找半天不知道怎么去解析这些数 ...

  2. C语言如何将十六进制字符串转为十六进制Byte

    问题展示 我们的目标是 将十六进制字符串转为十六进制Byte 由上图我们可以清晰的看到 我们失败了.如何解决呢? 代码示例 #include<stdio.h> #include<st ...

  3. JS 十六进制字符串转十六进制字符串数组以及字节数组

    JS 十六进制字符串转十六进制字符串数组以及字节数组 //十六进制字符串转换为数组 function hexStringToArray(str) {var pos = 0;var len = str. ...

  4. solidity 十六进制字符串转十六进制bytes

    pragma solidity ^0.4.16;contract Metadata {// 十六进制字符串转换成bytesfunction hexStr2bytes(string data)retur ...

  5. python 十六进制字符串转十六进制

    在写代码的时候,想将十六进制的字符串转为十六进制,发现使用 hex() 会出现错误,TypeError: 'str' object cannot be interpreted as an intege ...

  6. java 文件转十六进制_JAVA将文件转成十六进制字符串和十六进制字符串生成文件的方法...

    以下代码以APK文件为例,其他格式的文件方法一样,代码如下: package com.evideostb.billsystem.module.update; import java.io.*; /** ...

  7. C中十六进制字符串转十六进制数组

     第一种方法: void Hexstr2ByteArray() {char* str = "24240a0030104F550D0A";int i = 0;char buf[256 ...

  8. python十六进制字符串转十六进制

    str_test = '0x12345678' str_int = int(str_test,16) hex_int = hex(str_int) print(hex_int ) >> 0 ...

  9. c# 浮点数十六进制字符串_从C#中包含十六进制值的字符串数组中打印整数值...

    c# 浮点数十六进制字符串 将十六进制字符串数组转换为整数 (Converting array of hexadecimal strings to integers) Let suppose you ...

  10. LabVIEW学习:十六进制和十六进制字符串相互转化

    在工作中经常会遇到发送十六进制,接收十六进制的问题.对于字符串大家肯定不会陌生,通常情况下我习惯了发送字符串数据,其实发送十六进制在实际使用中也是经常遇到的,在这里我将用LabVIEW实现十六进制和十 ...

最新文章

  1. 使用maven搭建ssm框架的javaweb项目
  2. MySQL 5.5 服务器变量详解(二)
  3. [仙剑四]仙剑四十大经典语句评析
  4. Docker(一):Docker核心技术预览
  5. linux 远程 telnet
  6. Vue实现访问百度音乐API实现播放音乐功能
  7. python中文乱码 def decode-python处理一些乱码的中文文本时decode('utf-8')报错的处理...
  8. kafka java api 删除_使用Java API创建(create),查看(describe),列举(list),删除(delete)Kafka主题(Topic)...
  9. Java生成荣誉证书PDF文件
  10. PostgreSQL删除数据
  11. Windows服务创建及安装
  12. 【SpringBoot】SpringBoot最精简的设置
  13. linux分屏显示文件行数,linux常用命令集合1
  14. Matlab绘图基本控制命令
  15. JS利用canvas画布功能画时钟
  16. 计算机二进制转十进制怎么yun,二进制 十进制 十六进制
  17. Win10安装Ubuntu20.04双系统
  18. 字符串与vector和list
  19. 2022山东省安全员C证试题及模拟考试
  20. [Evolutionary Algorithm] 进化算法简介

热门文章

  1. 局域网内连接MySQL数据库
  2. 左右连接和内连接的区别
  3. 两个网段计算机如何共享打印机,不同网段的打印机共享怎么连接?具体步骤
  4. 360的服务器在哪个文件夹,360rec是什么文件夹?可以删除吗?
  5. 优动漫PAINT入门宝典(图层篇)——混合模式
  6. tps在区块链是什么意思_一文读懂 TPS介绍!
  7. Spring Boot干货系列(一)入门篇
  8. 【渝粤题库】陕西师范大学163104 景区管理 作业 (高起专)
  9. 笑话:如果你在河边等待得足够久,你会看到你的敌人的尸体漂过,是怎么翻译出来的?
  10. foxpro获取html数据类型,FoxPro数据库写入html文件中