blob: 1d5524697a95001bd6b435bc73dad5b2ed7af15b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
#include <string.h>
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;
}
|