QByteArray::fromHex转换原理

QByteArray::fromHex,表示从十六进制数转成字符串。对其转换原理做简要说明。举例

    QString hstring1("31323235");
    QByteArray test1 = hstring1.toLocal8Bit();
    QByteArray test2 = QByteArray::fromHex(test1);

运行结果

变量test1用8个字符保存“31323235”,每个字符8位,两个字符16位。QByteArray::fromHex转换时,每16位作为转换单元。转换步骤:

第一步,把“31323235”分成4组,“31”,“32”,“32”,“35”

第二步,以“31”为例,fromHex表示从16进制。所以把31当做16进制数,转成十进制数是3*16+1=49. 结合ASCII码对照表,十进制数49对应数字1,把数字1当做字符“1”。其他3组类似。

                            ASCII码对照表,数字(0-9)

所以最终结果:

“31”->“1”

“32”->“2”

“32”->“2”

“35”->“5”

即变量test2的值是“1225”

1225,不觉得眼熟吗?圣诞快乐!

### 回答1: qbytearray::fromhex是一个Qt函数,用于将十六进制字符串转换为QByteArray类型的数据。该函数将每两个十六进制字符转换为一个字节,并将结果存储在QByteArray中。例如,将字符串"48656C6C6F20576F726C64"转换为QByteArray将得到一个包含"Hello World"的字节数组。 ### 回答2: qbytearray::fromhex是Qt框架中一个用于将十六进制字符串转换成字节数组的函数,其作用是将一串十六进制表示的数据转换成计算机可以理解的二进制数据。 具体来说,当我们需要在Qt程序中读取或处理十六进制格式的数据时,可以使用qbytearray::fromhex函数将其转换成字节数组,以便于后续业务逻辑的实现。该函数的用法非常简单,只需要将需要转换的十六进制字符串作为参数传入即可。 需要注意的是,由于十六进制字符串中的每两个字符表示一个字节,因此在使用fromhex函数时需要保证输入的字符串长度为偶数。另外,在从十六进制转换回二进制数据时,如果数据中存在奇怪的字符,如空格、换行符等,则需要在转换之前先将这些字符过滤掉,否则会影响转换的结果。 总的来说,qbytearray::fromhex函数是Qt框架中一个非常实用的功能,可以在读取或处理十六进制格式数据时方便地将其转换成可供计算机处理的字节数组,为开发者提供了极大的便利和支持。 ### 回答3: qbytearray::fromhex是一个Qt框架中的函数,它可以将一个十六进制表示的字符串转换为QByteArray类型的数据。这个函数在处理二进制数据的时候非常有用,可以将十六进制表示的数据转换成可以处理的二进制数据。 在实际项目中,十六进制表示的数据经常用于网络传输和文件读写操作。在这种情况下,需要将十六进制数据转换成二进制数据进行处理。如果直接对字符串进行操作,可能会导致数据解析错误或处理效率低下。 qbytearray::fromhex函数可以解决这个问题。它会将一个十六进制表示的字符串转换成相应的二进制数据,并存储到一个QByteArray类型的变量中。使用qbytearray::fromhex函数,可以将十六进制数据转换成二进制数据,并进行后续的操作。 需要注意的是,qbytearray::fromhex函数转换的是由字符串形式的十六进制数所组成的数据,如"7F2B3E"。如果直接将一个整型数转换成十六进制字符串后使用该函数进行转换,可能会得到错误的结果。此时可以使用其他类型转换函数将整型数转换成QByteArray类型的数据,如QByteArray::number()函数。 总的来说,qbytearray::fromhex函数是一个处理二进制数据的重要函数,可以将十六进制表示的数据转换成处理后的二进制数据,从而方便后续的操作。在实际项目中,需要注意对输入数据的格式和数据类型的适配。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值