ProgIng - Programación en Ingeniería
Loading...
Searching...
No Matches
027_Paridad.c
Go to the documentation of this file.
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <time.h>
4
5
#define BIT(n) (1<<(n))
6
#define BIT_TOGGLE(x,n) ((x) ^= BIT(n))
7
#define NC 100
8
9
int
main
(
int
argc,
char
*argv[])
10
{
11
char
msg[
NC
+1], p, v;
12
int
i, nc, _nc, _nb;
13
srand(time(NULL));
14
i=0;
15
do
{
16
msg[i++] = getc(stdin);
17
}
while
(msg[i-1]!=10&&i<
NC
);
18
nc = i-1;
19
msg[nc] =
'\0'
;
20
for
(i=0, p=0; i<nc; i++)
21
p^=msg[i];
22
for
(i=0, v=p; i<nc; i++)
23
v^=msg[i];
24
printf(
"MSG: %s(%d)-%c-%d\n"
, msg, nc, p, (
int
)v);
25
_nc = rand()%nc;
26
_nb = rand()%(8*
sizeof
(char));
27
BIT_TOGGLE
(msg[_nc], _nb);
28
for
(i=0, v=p; i<nc; i++)
29
v^=msg[i];
30
printf(
"MSG: %s(%d)-%c-%u\n"
, msg, nc, p, (
unsigned
int
)v);
31
return
0;
32
}
NC
#define NC
Definition
027_Paridad.c:7
BIT_TOGGLE
#define BIT_TOGGLE(x, n)
Definition
027_Paridad.c:6
main
int main(void)
Definition
Ejemplo_035.c:15
src
20251
027_Paridad.c
Generated by
1.16.1