Qt簡單程式設計 顯示十六進製制與二進位制 1

2021-07-13 21:32:03 字數 1246 閱讀 9026

從c來的,要顯示數值,第乙個是用sprintf,沒錯我也一直用它,直到今天想顯示二進位制。搜尋未果,於是按f1。

於是看到一條警告:

warning: we do not recommend using qstring::sprintf() in new qt code. instead, consider using qtextstream or arg(), both of which support unicode strings seamlessly and are type-safe. here』s an example that uses qtextstream:

意思是qt叫我不要再用sprintf了。

於時再看它說的qtextstream與arg(),要顯示不同進製,應使用arg()。

arg()不是乙個函式,而是一大堆,從第二個同名函式開始,就有一句話:

this function overloads arg().

在別的地方看到這句話「它有20個過載「一直不明白是什麼意思,現在好像有點知道。

不管這些,反正我只是想用它而已。

我感興趣的是這個函式。

qstring qstring::arg(int a, int fieldwidth = 0, int

base = 10, qchar fillchar = qlatin1char( ' ' )) const

幫助裡有例子,也能搜尋出一堆引用這個例子的網頁,我簡單地試下。

qstring info = qstring("0x%1").arg(0x55,0,16);
上面的**得出乙個字串」0x55「,至此就是qt說的用arg()代替sprintf。

但我有更高的要求,要顯示二進位制。按」所有需要的都在f1「原則,再看幫助,有這句話。

the a argument is expressed in base base, which is

10by

default

and must be between 2

and36.

有點小激動,二話沒說,試一下。

qstring info = qstring("0b%1").arg(0x55,0,2);
得出的結果是。

0b1010101
有點不對,最好能顯示」01010101「,arg()還有兩參考未用呢,再看幫助。

十六進製制位元組 十六進製制轉二進位制

做專案也將近一年的時間了。從一開始就經常提到 乙個十六進製制位元組 然而一開始就是迷惑的,直到現在。乙個十六進製制位元組,比如 ff。周圍的人經常說這是乙個十六進製制位元組。然後我就想,這不是兩個字元嗎,分別是f 和f,乙個字元是乙個位元組,兩個字元是兩個位元組,怎麼就成乙個十六進製制位元組,就成乙...

十六進製制除錯顯示資料

在嵌入式開發中,不管是驅動除錯還是應用協議開發,經常需要十六進製制列印資料,供除錯使用。以下是c實現的乙個十六進製制輸出的函式,感覺挺實用的,供參考 define bin2char ch ch ch ch void dumphex unsigned char buf,int len unsigned...

顯示十六進製制字元陣列

1.將一串十六進製制數值,儲存到字元陣列中,然後以16進製制顯示。unsigned char buf 5 x8b x22 x11 x12 結尾 0 cstring str for int i 0 i 4 i afxmessagebox str 輸出的結果為 8b 22 11 12 2.如果第一句,改...