Qt进制转换,16进制转long ABCD/CDAB

2023-05-16

Qt进制转换,16进制转long ABCD/CDAB

long hexToABCD(const QString &hexData) // 16进制转long ABCD,大端
{
    bool ok;
    char data[4];
    data[0] = hexData.left(2).toInt(&ok, 16);
    data[1] = hexData.mid(2, 2).toInt(&ok, 16);
    data[2] = hexData.mid(4, 2).toInt(&ok, 16);
    data[3] = hexData.right(2).toInt(&ok, 16);

    long value = 0;
    QByteArray bytedata;
    bytedata.setRawData((char *)&value, 4);
    char *temp = (char *)&value;
    temp[0] = data[3];
    temp[1] = data[2];
    temp[2] = data[1];
    temp[3] = data[0];
    return value;
}

long hexToCDAB(const QString &hexData) // 16进制转long CDAB,小端
{
    bool ok;
    char data[4];
    data[0] = hexData.left(2).toInt(&ok, 16);
    data[1] = hexData.mid(2, 2).toInt(&ok, 16);
    data[2] = hexData.mid(4, 2).toInt(&ok, 16);
    data[3] = hexData.right(2).toInt(&ok, 16);

    long value = 0;
    QByteArray bytedata;
    bytedata.setRawData((char *)&value, 4);
    char *temp = (char *)&value;
    temp[0] = data[1];
    temp[1] = data[0];
    temp[2] = data[3];
    temp[3] = data[2];
    return value;
}

long hexToBADC(const QString &hexData)
{
    bool ok;
    char data[4];
    data[0] = hexData.left(2).toInt(&ok, 16);
    data[1] = hexData.mid(2, 2).toInt(&ok, 16);
    data[2] = hexData.mid(4, 2).toInt(&ok, 16);
    data[3] = hexData.right(2).toInt(&ok, 16);

    long value = 0;
    QByteArray bytedata;
    bytedata.setRawData((char *)&value, 4);
    char *temp = (char *)&value;
    temp[0] = data[2];
    temp[1] = data[3];
    temp[2] = data[0];
    temp[3] = data[1];
    return value;
}

long hexToDCBA(const QString &hexData)
{
    bool ok;
    char data[4];
    data[0] = hexData.left(2).toInt(&ok, 16);
    data[1] = hexData.mid(2, 2).toInt(&ok, 16);
    data[2] = hexData.mid(4, 2).toInt(&ok, 16);
    data[3] = hexData.right(2).toInt(&ok, 16);

    long value = 0;
    QByteArray bytedata;
    bytedata.setRawData((char *)&value, 4);
    char *temp = (char *)&value;
    temp[0] = data[0];
    temp[1] = data[1];
    temp[2] = data[2];
    temp[3] = data[3];
    return value;
}

int main(int argc, char *argv[])
{
    long v1 = hexToABCD("6387fffd"); //输出1669857277
    long v2 = hexToCDAB("6387fffd"); //输出-171129
    return 0;
}

Qt中double与float与16进制字符串之间的转换

https://blog.csdn.net/SiriusWilliam/article/details/117483663

// float转16进制字符串
float f = 20.321;
uint f_uint = *(uint*)&f;
QString f_hex = QString("%1").arg(f_uint, 4, 16, QLatin1Char('0'));    // 4是生成字符串的最小长度,可以改为8
qDebug() << f_hex;    // "41a29168"

// 16进制字符串转float
QString hex_float = "41a29168";
uint hex_uint = hex_float.toUInt(nullptr, 16);
float hex_res = *(float*)&hex_uint;
qDebug() << hex_res;    // 20.321

// double转16进制字符串
double d = 20.321;
qulonglong d_long = *(qulonglong*)&d;
QString d_hex = QString("%1").arg(d_long, 8, 16, QLatin1Char('0'));
qDebug() << d_hex;    // "4034522d0e560419"

// 16进制字符串转double
QString hex_double = "4034522d0e560419";
qulonglong hex_long = hex_double.toULongLong(nullptr, 16);
double hex_d = *(double*)&hex_long;
qDebug() << hex_d;    // 20.321

C语言:十六进制(HEX)和浮点类型(float、double)转换

https://handsome-man.blog.csdn.net/article/details/107333529

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt进制转换,16进制转long ABCD/CDAB 的相关文章

  • 一次性将所有变成 long long

    include lt bits stdc 43 43 h gt using namespace std const int N 61 100000 43 100 define int long long define fir i a b f
  • UI自动化之TouchAction(dirver).long_press()长按

    之前篇说过driver tap可以通过duration参数设置实现长按 xff0c 除外TouchAction也可以 xff0c 而且还可以用之实现多个点击的事件集 xff0c 废话不多说直接贴码 xff1a span class toke
  • python练习3:输入分数,输出对应的ABCD级别

    span class token keyword while span span class token boolean True span span class token punctuation span span class toke
  • HJ5 进制转换

    描述 写出一个程序 xff0c 接受一个十六进制的数 xff0c 输出该数值的十进制表示 数据范围 xff1a 保证结果在 注意本题有多组输入 输入描述 xff1a 输入一个十六进制的数值字符串 注意 xff1a 一个用例会同时有多组输入数
  • 进制转换

    二 八 十六转化为十进制 系数 xff1a 每一个位置上的数 xff0c 称为系数 基数 xff1a x进制 xff0c 基数就是x 权 xff1a 对数据系统从右往左进行编号 xff0c 并且从0开始 xff0c 每一个编号就是该系数所对
  • 数据结构实验之栈与队列一:进制转换

    数据结构实验之栈与队列一 xff1a 进制转换 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Discuss Problem Description 输入一个十进制非负
  • poj 1131进制转换

    POJ 1131 Octal Fractions 任意进制之间小数的转换 给定一个八进制的小数题目要求你把它转换为十进制小数 xff0c 转换后小数的位数是转换前八进制小数位数的3倍且不输出末尾无意义的零 即后置零 我采用的方法是乘10然后
  • Java中Long和long的区别

    Java中Long和long的区别 Java的数据类型分为两种 xff1a 1 基本类型 xff1a byte 8 short 16 int 32 long 64 float 32 double 64 char 16 boolean 1 2
  • C语言中命令行工具 (getopt和getopt_long)

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • (*((volatile unsigned long *) 0xE0028000)) 作用小解

    define IO0PIN volatile unsigned long 0xE0028000 no in lpc210x 以此句为例 简述如下 与51单片机的头文件 lt reg51 h gt 类似 在ARM处理器中 也必须有自己的寄存器
  • private static final long serialVersionUID = 1L

    很显然这行代码的意思是将SerialVersionUID的值定义为一个常量 xff0c 那这是干什么的呢 xff1f 解决这个问题 xff0c 首先要了解包含SerialVersionUID的Serializable接口是什么 xff1f
  • C语言中关于int、long int、long long 的区别

    1 关于int 和 long int xff08 1 xff09 在VC下没有区别 两种类型均用4个字节存放数据 xff08 2 xff09 VC是后出的编译器 xff0c 之前有很多早期的C编译器 xff0c 在早期编译器下long in
  • jdk8-获取本机ip、判断ip范围、ip与long互转等

    在配置nginx的ip白名单时候 xff0c 会通过ip段进行配置 xff08 如 10 10 10 10 24 xff09 就在思考这种配置怎么通过代码解析并判断 xff0c 故通过搜索网络内容 xff0c 并通过java编写测试代码 代
  • Java中 Long(long) 和Integer(int)之间的强制转换

    一 将long型转化为int型 这里的long型是基础类型 long a 10 int b int a 二 将Long型转换为int 型的 这里的Long型是包装类型 Long a 10 int b a intValue 三 将int型转化
  • "蓝桥杯“基础练习:十六进制转八进制

    问题描述 给定n个十六进制正整数 输出它们对应的八进制数 输入格式 输入的第一行为一个正整数n 1 lt n lt 10 接下来n行 每行一个由0 9 大写字母A F组成的字符串 表示要转换的十六进制正整数 每个十六进制数长度不超过1000
  • c语言2进制转3进制

    保存答案的 要求二进制满足最多64位 网上的答案都不对 听同学讲用了 unsigned long long 和 运算左移 方法一 include
  • Java中long的表达式问题

    今天在代码里发现了有个抛错 是由下面这段分片上传时定位的代码捕获的 第一想法是是不是由于包太大 6 4G 导致long的offset超限 虽然long好像没有这么短 然后查了下long的最大值Long MAX VALUE 2的63次方 1
  • 任意进制之间的转换(C++实现)

    任意进制之间的转换 C 实现 题目描述 输入格式 第一行输入两个整数 n 和 m 2 lt n m lt 16 n 代表的是第二行输入的数的进制 m 代表的是输出的数字的进制 第二行输入一个x 如果有字母 输入大写字母 输出格式 输出一个
  • C++任意数字类型转 2进制、8进制、16进制

    C 任意数字类型转 2进制 8进制 16进制 平时我们在写程序的过程中会经常碰见进制转换的操作 偶尔写一次还好每次写 我们都又要重新定义函数进行转换 在这里博主就分享一下我自己编写的一个进制转换的方法吧 也比较通用 如没有耐心可以直接跳过思
  • PHP的进制转换与字符串的编码解码

    目录 一 进制转换函数 dechex hexdec decbin bindec base convert 二 编码解码函数 bin2hex hex2bin pack 和 unpack 三 字符串类型详解 PHP字符串 从PHP 5 2 1版

随机推荐