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
9int 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}
#define NC
Definition 027_Paridad.c:7
#define BIT_TOGGLE(x, n)
Definition 027_Paridad.c:6
int main(void)
Definition Ejemplo_035.c:15