奇偶校验--考察进制转换
**奇偶校验**
主要考察的是对于进制的转换,使用的是一个不断除的方法。
需要注意的是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;
}
```