奇偶校验--考察进制转换

**奇偶校验**


主要考察的是对于进制的转换,使用的是一个不断除的方法。
需要注意的是vector这个数据结构的使用,vector的size()的返回值是这个向量中的元素的个数。
其中题目要求要保证这个向量的个数为8位,其中最后一位是由1的个数的奇偶决定的。所以就只需要添加7个元素进入,最后再把第8个元素加入。
```
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
typedef vector<int>ve;
string str;
int cnt;

ve change_bit(int num) {
ve vet;
int cnt = 0;
while (num) {
int res = num % 2;
if (res)
cnt++;
vet.push_back(res);
num /= 2;
}
if (vet.size() < 7) // 0 1 2 3 4 5 6 7
vet.push_back(0);
if (cnt % 2)
vet.push_back(0);
else
vet.push_back(1);

reverse(vet.begin(), vet.end());

return vet;
}

int main() {
cin >> str;
for (int i = 0; i < str.size(); i++) {
int num = str[i];
auto res = change_bit(num);

for (int i = 0; i < res.size(); i++)
cout << res[i];
cout << endl;
}

return 0;
}

```

 

posted on 2024-04-30 08:18  不是小朋友L  阅读(1)  评论(0编辑  收藏  举报

导航