Qt 將字符串轉成16進制顯示


最近項目用到了需要將字符串轉換成16進制顯示。這玩意折騰了一上午。

首先,數據塊內容

struct UserData
{
    char Head[3] = {'X','J','J'};
    char Flag = '1'-'0x30';
    char X_Position = '1'-'0x30';
    char Y_Position = '@'-'0x30';
    char Sum = Head[0] + Head[1] + Head[2] + Flag + X_Position + Y_Position;
}userdata;

  


我需要將這個結構體通過網口發送出去,然后並且在界面顯示發送的數據內容,發送是簡單了,但是顯示就麻煩了。

我做了一下工作,可能存在不必要的內容。

第一步,拼接字符串,並將字符串轉成成QString
  
  char temp[7];
    temp[0] = userdata.Head[0];
    temp[1] = userdata.Head[1];
    temp[2] = userdata.Head[2];
    temp[3] = userdata.Flag;
    temp[4] = userdata.X_Position;
    temp[5] = userdata.Y_Position;
    temp[6] = userdata.Sum;
    QString tt = temp;

 第二步,將QString轉成16進制的QByteArray,

QByteArray temp1 = tt.toLatin1().toHex();

第三步,添加空格

QByteArray temp2;
    for(int i = 0; i < temp1.length()/2;i++)
    {
        temp2 += temp1.mid(i*2,2) + " ";
    }
以上內容完成后,將可以將字符串一16進制的形式顯示在界面上了,不過我目前這個代碼里面還存在一個問題,組后多出一組數據來,不知道哪里來的。

 

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM