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

2022-04-02 09:22:57 字數 1117 閱讀 8301

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

首先,資料塊內容

struct userdata

; 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++)

以上內容完成後,將可以將字串一16進製制的形式顯示在介面上了,不過我目前這個**裡面還存在乙個問題,組後多出一組資料來,不知道**來的。

16進製制轉字串 字串轉16進製制

16進製制轉字串 void hextostr char pbdest,char pbsrc,int nlen pbdest nlen 2 0 字串轉16進製制 void strtohex char pbdest,char pbsrc,int nlen 一 將陣列轉換為十六進製製同值的字串 讀取陣列中...

C 將10進製字串轉為16進製制字串

方法一 推薦 直接除以16進行計算 對結果遞迴進行轉換運算 如下 include include using namespace std string decinttohexstr long long num string decstrtohexstr string str int main ret...

字串16進製制儲存

上次介紹了一種字串轉化為16進製制顯示的演算法,並封裝成了api,這個api可用於串列埠收到資料後按16進製制顯示字串,這次介紹串列埠按16進製制傳送字串的演算法,使用基於字元型別引數的模板函式實現。演算法原理是遍歷字串,將在區間 0 9 a f a f 的字元轉化成對應的16進製制整數 範圍為閉區...