hex轉換為char顯示
阿新 • • 發佈:2019-01-04
typedef unsigned long u32; typedef unsigned short u16; typedef unsigned char u8; #define assert_print(a) printf("%s", a) u8 Temple_Data[32]; u8 HexToChar(u8 byTemp) { byTemp &= 0x0f; if(byTemp >= 10) // show 'A' - 'F' { byTemp = byTemp - 0xa + 0x41; } else // show '0' - '9' { byTemp = byTemp + 0x30; } return(byTemp); } void assert_hex_u8print(u8 byte) { Temple_Data[0] = HexToChar((byte & 0xf0) >> 4); Temple_Data[1] = HexToChar(byte & 0x0f); Temple_Data[2] = 0; assert_print(Temple_Data); } void assert_hex_u16print(u16 word) { Temple_Data[0] = HexToChar((word & 0xf000) >> 12); Temple_Data[1] = HexToChar((word & 0x0f00) >> 8); Temple_Data[2] = HexToChar((word & 0x00f0) >> 4); Temple_Data[3] = HexToChar(word & 0x000f); Temple_Data[4] = 0; assert_print(Temple_Data); } void assert_hex_u32print(u32 dword) { Temple_Data[0] = HexToChar((dword & 0xf0000000) >> 28); Temple_Data[1] = HexToChar((dword & 0x0f000000) >> 24); Temple_Data[2] = HexToChar((dword & 0x00f00000) >> 20); Temple_Data[3] = HexToChar((dword & 0x000f0000) >> 16); Temple_Data[4] = HexToChar((dword & 0x0000f000) >> 12); Temple_Data[5] = HexToChar((dword & 0x00000f00) >> 8); Temple_Data[6] = HexToChar((dword & 0x000000f0) >> 4); Temple_Data[7] = HexToChar(dword & 0x0000000f); Temple_Data[8] = 0; assert_print(Temple_Data); }