考慮將數字的十六進位字串表示形式轉換為32 位元有符號整數的任務。例如,十六進位字串「fffefffe」轉換為二進位形式的 11111111111111101111111111111110,表示有符號整數 -65538。此外,我們需要處理正數和負數,例如「0000000A」(二進位:0000000000000000000000000001010;十進位:10)。
利用std: :stringstream類,轉換過程變得簡單:
1 2 3 4 |
|
透過從流中提取整數,我們獲得十六進位字串的32 位元有符號整數表示。
Boost 的lexical_cast:處理錯誤(已停止)
注意:如來源答案所示,Boost 的lexical_cast 方法已已停止,轉而支援較新的C 11 函數。
Boost 也提供了一個方便的解決方案,其中包含錯誤檢查:
1 2 3 4 5 |
|
自訂lexical_cast:簡單實作無錯誤檢查
對於那些不使用Boost 的人,可以使用lexical_cast的簡化版本,無需錯誤處理:
1 2 3 4 5 6 7 8 9 10 |
|
使用std::stringstream或較新的C 11 實用程式(例如std::stol),開發人員可以有效地將十六進位字串轉換為C 中的有符號整數.
以上是如何在 C 中將十六進位字串轉換為有符號整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!