概要
Qt中 QByteArray 存储十六进制的数(例如 0xff),实际是以ASCII码存储的,
存储形式为 '\xff'(其中 \ 是转码标识),单位是字节(一个字节存储一个十六进制数)
如果需要比较的话,用 array.at(0) == '\xff' 表示,而不是 array.at(0) == 0xff 。
判断 QByteArray 里面存储的是 int 整数,还是字符 'f':
如果是 int 整数,则用 int 或者 hex 来判断,如果是字符 ‘f’ ,则用 ‘f’ 来判断。
比如 QByteArray 内容为 ff ,即 QByteArray[0] = f,QByteArray[1] = f,
则 QByteArray 里面存储的是两个字符 ‘f’,而不是整数 255。
比如 QByteArray 内容为 ff ,即 QByteArray[0] = ff,
则 QByteArray 里面存储的是一个整数 255,而不是两个字符 ‘ff’。
注:在 QByteArray 中 \xff 与 0xff 是等效的。
QByteArray: :fromHex 将 QByteArray 为 "ff"转换成 QByteArray 为 “\xff”
QByteArray: :toHex 将 QByteArray 为 “08” 转换成 QByteArray 为 “\x0b"QByteArray::fromHex(QByteArray::number(0xff, 16)) //将整数 0xff 转换为 QByte