题解 | 奇偶校验

#include<iostream>
#include<string>
#include<bitset>
#include<vector>
using namespace std;

//将字符的ascill码值转换成二进制字符串
string charToBinaryString(char ch){
	bitset<8> bits(static_cast<unsigned char>(ch));
	return bits.to_string();
}

//将二进制字符串转换成字符数组(每个字符只能是0或者1)
vector<char> binaryStringToCharArray(std::string binaryStr){
	vector<char> binaryArray(binaryStr.size());
	copy(binaryStr.begin(),binaryStr.end(),binaryArray.begin());
	return binaryArray;
}

/*
 *奇偶校验
 * */
int main(){
	string s1;
	while(cin>>s1){
		int n = s1.length();
		for(int i = 0;i<n;i++){
			char ch = s1[i];
			string temp = charToBinaryString(ch);
			vector<char> vec = binaryStringToCharArray(temp);
			//统计1出现的次数
			int count = 0;
			for(int i = 0;i<vec.size();i++){
				if(vec[i]=='1'){
					count++;
				}
			}
			if(count%2==0){
				vec[0] = '1';
			}
			count=0;
			for(int i = 0;i<vec.size();i++){
				cout<<vec[i];
			}
			cout<<endl;
		}
	}
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务