Qt:十六进制字符串和十六进制互转
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:十六进制字符串和十六进制互转相关推荐
- 十六进制字符串与中文互转
十六进制字符串与中文互转 前言:有时候在做数据分析的时候会遇到一些二进制数据文件或者在进行tcp/udp通信的时候经常需要把数据转化成字节数据,其中包含了中文数据,但网上查找半天不知道怎么去解析这些数 ...
- C语言如何将十六进制字符串转为十六进制Byte
问题展示 我们的目标是 将十六进制字符串转为十六进制Byte 由上图我们可以清晰的看到 我们失败了.如何解决呢? 代码示例 #include<stdio.h> #include<st ...
- JS 十六进制字符串转十六进制字符串数组以及字节数组
JS 十六进制字符串转十六进制字符串数组以及字节数组 //十六进制字符串转换为数组 function hexStringToArray(str) {var pos = 0;var len = str. ...
- solidity 十六进制字符串转十六进制bytes
pragma solidity ^0.4.16;contract Metadata {// 十六进制字符串转换成bytesfunction hexStr2bytes(string data)retur ...
- python 十六进制字符串转十六进制
在写代码的时候,想将十六进制的字符串转为十六进制,发现使用 hex() 会出现错误,TypeError: 'str' object cannot be interpreted as an intege ...
- java 文件转十六进制_JAVA将文件转成十六进制字符串和十六进制字符串生成文件的方法...
以下代码以APK文件为例,其他格式的文件方法一样,代码如下: package com.evideostb.billsystem.module.update; import java.io.*; /** ...
- C中十六进制字符串转十六进制数组
第一种方法: void Hexstr2ByteArray() {char* str = "24240a0030104F550D0A";int i = 0;char buf[256 ...
- python十六进制字符串转十六进制
str_test = '0x12345678' str_int = int(str_test,16) hex_int = hex(str_int) print(hex_int ) >> 0 ...
- c# 浮点数十六进制字符串_从C#中包含十六进制值的字符串数组中打印整数值...
c# 浮点数十六进制字符串 将十六进制字符串数组转换为整数 (Converting array of hexadecimal strings to integers) Let suppose you ...
- LabVIEW学习:十六进制和十六进制字符串相互转化
在工作中经常会遇到发送十六进制,接收十六进制的问题.对于字符串大家肯定不会陌生,通常情况下我习惯了发送字符串数据,其实发送十六进制在实际使用中也是经常遇到的,在这里我将用LabVIEW实现十六进制和十 ...
最新文章
- 使用maven搭建ssm框架的javaweb项目
- MySQL 5.5 服务器变量详解(二)
- [仙剑四]仙剑四十大经典语句评析
- Docker(一):Docker核心技术预览
- linux 远程 telnet
- Vue实现访问百度音乐API实现播放音乐功能
- python中文乱码 def decode-python处理一些乱码的中文文本时decode('utf-8')报错的处理...
- kafka java api 删除_使用Java API创建(create),查看(describe),列举(list),删除(delete)Kafka主题(Topic)...
- Java生成荣誉证书PDF文件
- PostgreSQL删除数据
- Windows服务创建及安装
- 【SpringBoot】SpringBoot最精简的设置
- linux分屏显示文件行数,linux常用命令集合1
- Matlab绘图基本控制命令
- JS利用canvas画布功能画时钟
- 计算机二进制转十进制怎么yun,二进制 十进制 十六进制
- Win10安装Ubuntu20.04双系统
- 字符串与vector和list
- 2022山东省安全员C证试题及模拟考试
- [Evolutionary Algorithm] 进化算法简介
热门文章
- 局域网内连接MySQL数据库
- 左右连接和内连接的区别
- 两个网段计算机如何共享打印机,不同网段的打印机共享怎么连接?具体步骤
- 360的服务器在哪个文件夹,360rec是什么文件夹?可以删除吗?
- 优动漫PAINT入门宝典(图层篇)——混合模式
- tps在区块链是什么意思_一文读懂 TPS介绍!
- Spring Boot干货系列(一)入门篇
- 【渝粤题库】陕西师范大学163104 景区管理 作业 (高起专)
- 笑话:如果你在河边等待得足够久,你会看到你的敌人的尸体漂过,是怎么翻译出来的?
- foxpro获取html数据类型,FoxPro数据库写入html文件中