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,不觉得眼熟吗?圣诞快乐!