数据7位,头部校验1位
#include<iostream>
#include<string>
using namespace std;
string getCode(char c){
string s = "";
int sum = 0;
int i=0;
while(c!=0){
int digit = c%2;
char remain = digit+'0';
s = remain+s;
if(digit==1) sum++;
i++;
c=c>>1;
}
//带奇偶校验的ascii码,数据7位,前面有多个0时需要补齐
for(;i<7;i++) s='0'+s;
//带奇偶校验的ascii码,头部校验位1位
if(sum%2==0){
s = '1'+s;
} else {
s = '0'+s;
}
return s;
}
int main(){
string s;
while(cin>>s){
string::iterator it = s.begin();
while(it!=s.end()){
cout<<getCode(*it)<<endl;
it++;
}
}
return 0;
}

京公网安备 11010502036488号