給定一個字符,如何將此char轉換爲兩位數char,即二進制表示的十六進制值?如何獲得char的十六進制值的二進制表示
例如,給定一個char,它有一個二進制的介紹,這是一個字節,例如,01010100,這是0x54 .....我需要的54
給定一個字符,如何將此char轉換爲兩位數char,即二進制表示的十六進制值?如何獲得char的十六進制值的二進制表示
例如,給定一個char,它有一個二進制的介紹,這是一個字節,例如,01010100,這是0x54 .....我需要的54
實際上,它會在字符數組是:
char c = 84;
char result[3];
sprintf(result,"%02x",c);
下面的代碼,使用snprintf()
應該工作:
#include <stdio.h>
#include <string.h>
int main()
{
char myChar = 'A'; // A = 0x41 = 65
char myHex[3];
snprintf(myHex, 2 "%02x", myChar);
// Print the contents of myHex
printf("myHex = %s\n", myHex);
}
snprintf()
是如同功能10,除了它填充最大N個字符的char數組。的snprintf()
語法是:
int snprintf(char *str, size_t size, const char *format, ...)
其中str是字符串爲「衝刺」來的,大小是要寫入的字符的最大數量(在本例中2),剩下的就是像正常printf()
這是很容易閱讀:-)
#define H(x) '0' + (x) + ((x)>9) * 7
char c = 84;
char result[3] = { H(c>>4), H(c&15) };