]> gitweb.ps.run Git - onefile/blob - print_obf.c
add printself.c
[onefile] / print_obf.c
1 #include <string.h>
2
3 const char *ls = "1111100111111001110010101101101011111000100011111110100110011110" // A-D
4                  "1111111010001111111110001110100011111000100111111001100111111001" // E-H
5                  "1111010001001111111100011001111110111100101010011000100010001111" // I-L
6                  "1111101110011001110110111001100111111001100111111111100111111000" // M-P
7                  "1111100110111111111110011111101011111000111101111111010001000100" // Q-T
8                  "1001100110011111100110011001011010011001101111111001011001101001" // U-X
9                  "10011001111101001111001001001111";                                // Y-Z
10
11 const char *hs =
12     "f9f935b5f11f7997f71ff171f19f99f9f22ff89fd359111ffd99bd99f99ff9f1f9dff9f5f1fef222999f999699df966999f2f42f";
13
14 const wchar_t *uc = L"ùù5µñ\1fy\97÷\1fñqñ\9f\99ùò/ø\9fÓY\11\1fý\99½\99ù\9fùñùßùõñþò\"\99\9f\99\96\99ß\96i\99òô/";
15
16 void a(char c)
17 {
18     for (int o = 0; o < 4; o++)
19     {
20         int x = hs[(c - 'a') * 4 + o];
21         x -= x >= 'a' ? ('a' - 10) : '0';
22         for (int i = 0; i < 4; i++)
23             printf("%c%s", (x & (1 << i)) > 0 ? 'X' : ' ', (i + 1) % 4 == 0 ? "\n" : "");
24     }
25 }
26 void b(char c)
27 {
28     for (int o = 0; o < 2; o++)
29     {
30         int x = uc[(c - 'a') * 2 + o];
31         for (int i = 0; i < 8; i++)
32             printf("%c%s", (x & (1 << i)) > 0 ? 'X' : ' ', (i + 1) % 4 == 0 ? "\n" : "");
33     }
34 }
35
36 void get_binary()
37 {
38     for (int i = 0; i < strlen(ls) / 4; i++)
39     {
40         int num = 0;
41         for (int j = 0; j < 4; j++)
42         {
43             char c = ls[i * 4 + (3 - j)];
44             if (c == '1')
45                 num += (1 << (3 - j));
46         }
47         printf("%.1x", num);
48     }
49     printf("\n");
50 }
51 void get_ascii()
52 {
53     for (int i = 0; i < strlen(ls) / 8; i++)
54     {
55         int num = 0;
56         for (int j = 0; j < 8; j++)
57         {
58             char c = ls[i * 8 + (7 - j)];
59             if (c == '1')
60                 num += (1 << (7 - j));
61         }
62         printf("%C", num);
63     }
64     printf("\n");
65 }
66
67 int main()
68 {
69     a('d');
70     b('d');
71     get_binary();
72     get_ascii();
73     return 0;
74 }