QString input_data = ui->textEdit->toPlainText();
/// 将QT textEdit的十六进制转换成字符串
int len = 0;
unsigned char convert_data[1024] = {'\0'};
for (int i = 0; i < input_data.length(); i++)
{
unsigned char high_value = 0;
unsigned char low_value = 0;
if (input_data.toLocal8Bit().data()[i] >= 'A')
{
high_value = input_data.toLocal8Bit().data()[i] - 'A' + 10;
}
else
{
high_value = input_data.toLocal8Bit().data()[i] - '0';
}
if (input_data.toLocal8Bit().data()[i + 1] >= 'A')
{
low_value = input_data.toLocal8Bit().data()[i + 1] - 'A' + 10;
}
else
{
low_value = input_data.toLocal8Bit().data()[i + 1] - '0';
}
unsigned char data = high_value * 16 + low_value;
convert_data[len++] = data;
i++;
if (i + 2 < input_data.length())
{
i += 1;
}
}
/// 将字符转换成字符形式的十六进制显示出来
unsigned char high_hex;
unsigned char low_hex;
for (int i = 0; i < convert_len; i++)
{
high_hex = convert_data[i] >> 4;
low_hex = convert_data[i] & 0x0F;
if (high_hex > 9)
{
high_hex = high_hex + '0' + 7;
}
else
{
high_hex = high_hex + '0';
}
if(low_hex > 9)
{
low_hex = low_hex + '0' + 7;
}
else
{
low_hex = low_hex + '0';
}
frame += high_hex;
frame += low_hex;
frame += " ";
}
ui->textEdit_3->setPlainText(frame);