ProgIng - Programación en Ingeniería
Loading...
Searching...
No Matches
027_Paridad.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
Include dependency graph for 027_Paridad.c:

Go to the source code of this file.

Macros

#define BIT(n)
#define BIT_TOGGLE(x, n)
#define NC   100

Functions

int main (int argc, char *argv[])

Macro Definition Documentation

◆ BIT

#define BIT ( n)
Value:
(1<<(n))

Definition at line 5 of file 027_Paridad.c.

◆ BIT_TOGGLE

#define BIT_TOGGLE ( x,
n )
Value:
((x) ^= BIT(n))
#define BIT(n)
Definition 026_Binarios.c:3

Definition at line 6 of file 027_Paridad.c.

◆ NC

#define NC   100

Definition at line 7 of file 027_Paridad.c.

Function Documentation

◆ main()

int main ( int argc,
char * argv[] )

Definition at line 9 of file 027_Paridad.c.

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