儘管很簡單,但在C 中將整數轉換為十六進位字串可能會給開發人員帶來挑戰。與 C 不同,C 缺乏用於此轉換的本機方法。
但是,我們可以利用
std::cout << std::hex << your_int;
要捕獲整數的十六進位字串表示形式以供以後使用,請考慮使用 std::stringstream 物件。
std::stringstream stream; stream << std::hex << your_int; std::string result(stream.str());
在上面的範例中,可以在開頭的 << 後面加上 0x 字首。如果需要,可以進行操作。
值得注意的其他操縱器包括 std::oct(八進位)和 std::dec(十進位)。
但是,std::hex 操縱器預設產生字串僅包含必要數量的十六進位數字的表示形式。如果需要特定的寬度,可以使用 std::setfill 和 std::setw。
stream << std::setfill('0') << std::setw(sizeof(your_type) * 2) << std::hex << your_int;
最後,可以定義一個通用函數來處理整數到十六進位的轉換:
template< typename T > std::string int_to_hex( T i ) { std::stringstream stream; stream << "0x" << std::setfill ('0') << std::setw(sizeof(T)*2) << std::hex << i; return stream.str(); }
以上是如何在 C 中有效地將整數轉換為十六進位字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!