#include <stdio.h>
#include <math.h>
Go to the source code of this file.
|
| #define | MC 2048 |
| #define | l2 log(2) |
|
| int | main (int argc, char *argv[]) |
◆ l2
◆ MC
◆ main()
| int main |
( |
int | argc, |
|
|
char * | argv[] ) |
Definition at line 7 of file 028_Hamming.c.
8{
9 char str[
MC], strP[
MC];
10 int i, j, k, nc, nP;
11 i=0;
12 do{
13 str[i++] = getc(stdin);
14 }while(str[i-1]!=10);
15 str[i-1] = '\0';
16 nc = i-1;
17 nP = log(nc+log(nc)/
l2+1)/
l2+1;
18 printf("%s(%d, %d)\n", str, nc, nP);
19 for(i=0, j=1, k=0; i<nc+nP; i++)
20 {
21 if((i+1)!=j)
22 strP[i] = str[k++];
23 else
24 {
25 strP[i] = 0;
26 j<<=1;
27 }
28 }
29 for(i=0, j=1; i<nP; i++)
30 {
31 for(k=j; k<=(nc+nP); k++)
32 if(((k-j)%(2*j))<j)
33 strP[j-1]^=strP[k-1];
34
35
36 j<<=1;
37 }
38 strP[nc+nP] = '\0';
39 for(i=0; i<nc+nP; i++)
40 printf("%d\n", strP[i]);
41 printf("%s\n", strP);
42 return 0;
43}