最近專案用到了需要將字串轉換成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];第二步,將qstring轉成16進製制的qbytearray,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;
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進製制整數 範圍為閉區...