2016-10-14 231 views
1

正如標題所說,我對用C轉換二進制字符串爲十六進制字符串的最佳方式感興趣。二進制字符串最多4位,因此轉換爲單個十六進制字符將會最好。將二進制字符串轉換爲十六進制字符串C

感謝您的幫助,我不確定是否有內置的內容可以讓您更輕鬆地進行操作,因此我還沒有嘗試發佈。

+0

你是什麼意思的「最好」?最快的?最簡單的代碼? – samgak

+0

@samgak對不起,最簡單,沒有非常差的表現明智。不要擔心表現。謝謝 –

+0

你的問題太廣泛,不在話題上。 StackOverflow不是一種編碼服務。 – 2501

回答

2

您可以使用strtol二進制字符串轉換爲整數,然後sprintf到整數轉換爲十六進制字符串:

char* binaryString = "1101"; 

// convert binary string to integer 
int value = (int)strtol(binaryString, NULL, 2); 

// convert integer to hex string 
char hexString[12]; // long enough for any 32-bit value, 4-byte aligned 
sprintf(hexString, "%x", value); 

// output hex string 
printf(hexString); 

輸出:

d 

如果它的保證是一個單一的十六進制字符只需要hexString[0]

相關問題