2016-11-05 86 views
0

我有一個程序需要採用2位數的十六進制值(最多FF),並將每個數字轉換爲單獨的4位二進制值(最多爲1111)。我能夠編寫一個算法來爲我做這件事,但在這之前,有沒有一種簡單的方法可以用C++中的內置函數來實現這一點?將十六進制值轉換爲二進制值

+0

正在做這與字符串表示的十六進制字符?什麼是'FF' – asimes

+1

你可以檢查下面的答案是否是你的問題。 http://stackoverflow.com/questions/18310952/convert-strings-between-hex-format-and-binary-format – Soundararajan

回答

0

在十六進制字符和它們的二進制之間寫一個映射。

std::string HexCharToBinary(char c) { 
switch (c) { 
    case '0': return "0000"; 
    case '1': return "0001"; 
    // Now input rest of the cases. 
    case 'f': return "1111"; 
    default: assert(false); return "bad input"; 
}; 

正如@Crazy Eddie在評論部分指出的那樣。

使用數組會更好,最優的解決方案。

+2

你可以請鏈接這(http://stackoverflow.com/questions/483609/how-can- i-convert-hexadecimal-numbers-to-binary-in-c)來代替,以避免重複。 – Soundararajan

+0

爲什麼哦爲什麼你不使用數組? –

+0

如果對另一個問題的回答可以解決此問題,請將問題標記爲重複,而不是複製答案。絕對不要複製沒有歸屬。 – interjay

相關問題