ProgIng - Programación en Ingeniería
Loading...
Searching...
No Matches
029_Enc.c
Go to the documentation of this file.
1
#include <stdio.h>
2
3
#define MC 2048
4
5
int
main
(
int
argc,
char
*argv[])
6
{
7
char
str[
MC
], strE[
MC
], strD[
MC
], aux[
MC
];
8
int
i, nc, a, ai, b, n;
9
a = 17;
10
// ai = 49;
11
b = 21;
12
n = 52;
13
i=0;
14
do
{
15
str[i++] = getc(stdin);
16
}
while
(str[i-1]!=10);
17
str[i-1] =
'\0'
;
18
nc = i-1;
19
printf(
"MSG: %s\n"
, str);
20
for
(i=0; i<nc; i++)
21
printf(
"%d "
, str[i]);
22
printf(
"\n"
);
23
for
(i=0; i<nc; i++)
24
{
25
aux[i] = str[i]-
'A'
-6*(str[i]>=
'a'
);
26
printf(
"%d "
, aux[i]);
27
}
28
printf(
"\n"
);
29
for
(i=0; i<nc; i++)
30
{
31
aux[i] = (a*((int)aux[i])+b)%n;
32
printf(
"%d "
, aux[i]);
33
}
34
printf(
"\n"
);
35
for
(i=0; i<nc; i++)
36
strE[i] = aux[i]+
'A'
+6*(aux[i]>(n/2-1));
37
strE[nc]=
'\0'
;
38
printf(
"%s\n"
, strE);
39
for
(i=0; i<nc; i++)
40
{
41
aux[i] = strE[i]-
'A'
-6*(strE[i]>=
'a'
);
42
printf(
"%d "
, aux[i]);
43
}
44
printf(
"\n"
);
45
ai=1;
46
while
(((ai*a)%n)!=1)
47
ai++;
48
printf(
"ai = %d\n"
, ai);
49
for
(i=0; i<nc; i++)
50
{
51
aux[i] = (ai*((aux[i]<b)*n+aux[i]-b))%n;
52
printf(
"%d "
, aux[i]);
53
}
54
printf(
"\n"
);
55
for
(i=0; i<nc; i++)
56
{
57
strD[i] = aux[i]+
'A'
+6*(aux[i]>25);
58
printf(
"%d "
, strD[i]);
59
}
60
strD[nc] =
'\0'
;
61
printf(
"\n"
);
62
printf(
"%s\n"
, strD);
63
return
0;
64
}
MC
#define MC
Definition
028_Hamming.c:4
main
int main(void)
Definition
Ejemplo_035.c:15
src
20251
029_Enc.c
Generated by
1.16.1