#include const char *ls = "1111100111111001110010101101101011111000100011111110100110011110" // A-D "1111111010001111111110001110100011111000100111111001100111111001" // E-H "1111010001001111111100011001111110111100101010011000100010001111" // I-L "1111101110011001110110111001100111111001100111111111100111111000" // M-P "1111100110111111111110011111101011111000111101111111010001000100" // Q-T "1001100110011111100110011001011010011001101111111001011001101001" // U-X "10011001111101001111001001001111"; // Y-Z const char *hs = "f9f935b5f11f7997f71ff171f19f99f9f22ff89fd359111ffd99bd99f99ff9f1f9dff9f5f1fef222999f999699df966999f2f42f"; const wchar_t *uc = L"ùù5µñy—÷ñqñŸ™ùò/øŸÓYý™½™ùŸùñùßùõñþò\"™Ÿ™–™ß–i™òô/"; void a(char c) { for (int o = 0; o < 4; o++) { int x = hs[(c - 'a') * 4 + o]; x -= x >= 'a' ? ('a' - 10) : '0'; for (int i = 0; i < 4; i++) printf("%c%s", (x & (1 << i)) > 0 ? 'X' : ' ', (i + 1) % 4 == 0 ? "\n" : ""); } } void b(char c) { for (int o = 0; o < 2; o++) { int x = uc[(c - 'a') * 2 + o]; for (int i = 0; i < 8; i++) printf("%c%s", (x & (1 << i)) > 0 ? 'X' : ' ', (i + 1) % 4 == 0 ? "\n" : ""); } } void get_binary() { for (int i = 0; i < strlen(ls) / 4; i++) { int num = 0; for (int j = 0; j < 4; j++) { char c = ls[i * 4 + (3 - j)]; if (c == '1') num += (1 << (3 - j)); } printf("%.1x", num); } printf("\n"); } void get_ascii() { for (int i = 0; i < strlen(ls) / 8; i++) { int num = 0; for (int j = 0; j < 8; j++) { char c = ls[i * 8 + (7 - j)]; if (c == '1') num += (1 << (7 - j)); } printf("%C", num); } printf("\n"); } int main() { a('d'); b('d'); get_binary(); get_ascii(); return 0; }