Skip to content

Commit 283eccd

Browse files
committed
generates 16-bit code
1 parent ba756c6 commit 283eccd

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

hamming-code/generateCode.cpp

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#include <cstdlib>
2+
#include <ctime>
3+
#include <iostream>
4+
#include <vector>
5+
using namespace std;
6+
7+
void generateCode(vector<vector<int>>& vec) {
8+
int value = 0;
9+
for (int i = 0; i < 4; i++) {
10+
for (int j = 0; j < 4; j++) {
11+
if (j & 1) {
12+
value += vec[i][j];
13+
}
14+
}
15+
}
16+
vec[0][1] = (value - vec[0][1]) % 2;
17+
18+
value = 0;
19+
for (int i = 0; i < 4; i++) {
20+
for (int j = 2; j < 4; j++) {
21+
value += vec[i][j];
22+
}
23+
}
24+
vec[0][2] = (value - vec[0][2]) % 2;
25+
26+
value = 0;
27+
for (int i = 0; i < 4; i++) {
28+
for (int j = 0; j < 4; j++) {
29+
if (i & 1) {
30+
value += vec[i][j];
31+
}
32+
}
33+
}
34+
vec[1][0] = (value - vec[1][0]) % 2;
35+
36+
value = 0;
37+
for (int i = 2; i < 4; i++) {
38+
for (int j = 0; j < 4; j++) {
39+
value += vec[i][j];
40+
}
41+
}
42+
vec[2][0] = (value - vec[2][0]) % 2;
43+
44+
value = 0;
45+
for (int i = 0; i < 4; i++) {
46+
for (int j = 0; j < 4; j++) {
47+
value += vec[i][j];
48+
}
49+
}
50+
vec[0][0] = (value - vec[0][0]) % 2;
51+
}
52+
53+
int main() {
54+
srand(time(0));
55+
vector<vector<int>> vec(4, vector<int>(4));
56+
for (int i = 0; i < 4; i++) {
57+
for (int j = 0; j < 4; j++) {
58+
vec[i][j] = rand() % 2;
59+
}
60+
}
61+
62+
generateCode(vec);
63+
for (auto i : vec) {
64+
for (auto j : i) {
65+
cout << j << " ";
66+
}
67+
cout << endl;
68+
}
69+
cout << "Generated code: ";
70+
for (auto i : vec) {
71+
for (auto j : i) {
72+
cout << j;
73+
}
74+
}
75+
cout << endl;
76+
return 0;
77+
}

0 commit comments

Comments
 (0)