在C 中,可以使用unsigned char 或uint8_t 來處理無符號8 位元變數。但是,直接使用 ostream 列印這些變數會將它們解釋為字符,從而導致在處理無符號整數值時出現不期望的結果。
要準確地將 unsigned char 或 uint8_t 顯示為十六進位值,您需要將它們轉換為 int在將它們傳遞給 ostream 之前。例如,不要使用:
,而是使用:
此方法可確保將資料視為整數,從而得到正確的十六進位表示形式。
如果要添加前導零的填充,可以包含頭文件
此外,為了簡化此過程,您可以創建一個宏:
這允許您使用以下方式簡潔地列印十六進位值:
但是,值得考慮 MartinStettner 建議的替代方法,其中涉及使用操縱器std::hex,使程式碼更具可讀性並消除了強制轉換的需要:
以上是如何使用 ostream 在 C 中將 unsigned char 值列印為十六進位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!