1
正如標題所說,我對用C轉換二進制字符串爲十六進制字符串的最佳方式感興趣。二進制字符串最多4位,因此轉換爲單個十六進制字符將會最好。將二進制字符串轉換爲十六進制字符串C
感謝您的幫助,我不確定是否有內置的內容可以讓您更輕鬆地進行操作,因此我還沒有嘗試發佈。
正如標題所說,我對用C轉換二進制字符串爲十六進制字符串的最佳方式感興趣。二進制字符串最多4位,因此轉換爲單個十六進制字符將會最好。將二進制字符串轉換爲十六進制字符串C
感謝您的幫助,我不確定是否有內置的內容可以讓您更輕鬆地進行操作,因此我還沒有嘗試發佈。
您可以使用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]
。
你是什麼意思的「最好」?最快的?最簡單的代碼? – samgak
@samgak對不起,最簡單,沒有非常差的表現明智。不要擔心表現。謝謝 –
你的問題太廣泛,不在話題上。 StackOverflow不是一種編碼服務。 – 2501