首頁 > 後端開發 > C++ > 如何在 C 中使用 ostream 將無符號字元列印為十六進位?

如何在 C 中使用 ostream 將無符號字元列印為十六進位?

Mary-Kate Olsen
發布: 2024-11-11 02:56:02
原創
703 人瀏覽過

How to Print Unsigned Chars as Hexadecimal in C   Using ostream?

在C 中使用ostream 將無符號字元印為十六進位

在C 中,直接使用ostream 列印無符號8位元變數將它們視為字符,導致十六進位表示不準確。為了克服這個問題,有幾種方法可用:

轉換為 int

一種常見的方法是在列印之前將 unsigned char 轉換為整數。這會強制 ostream 將值視為十六進位數。例如:

使用十六進位操縱器與 int

或者,您可以直接將十六進位操控器與整數一起使用。這會將整數轉換為十六進位表示形式並將其附加到流中。例如:

將十六進位操縱器與setw 和setfill 結合使用

如果需要前導零進行填充,可以將十六進位操縱器與setw 和setfill 結合使用指定所需的寬度和填充字元。例如:

創建巨集

您可以透過建立組合了必要的 манипуляции 的巨集來簡化列印過程。例如:

使用這個宏,您可以簡單地編寫:

MartinStettner 的解決方案

另一個優雅的解決方案是建立用於無符號字元的自訂流插入器,自動將它們列印為十六進位。有關 MartinStettner 方法的更多詳細信息,請參閱原​​始問題和答案。

以上是如何在 C 中使用 ostream 將無符號字元列印為十六進位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板