输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如‘3’,输出:10110011)。
输入包括一个字符串,字符串长度不超过100。
可能有多组测试数据,对于每组数据,
对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。
3 3a
10110011 10110011 01100001
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
int judge[9];
int sum;
void toBinary(char c){//字符c ascii值 十进制转 二进制函数
sum=0;
int x;
for(int i=0;i<8;i++) judge[i]=0;
x=c;
// cout<<x<<endl;
int i=7;
int newx;
do{
newx=x/2;
int t=x%2;
judge[i--]=t;
if(t==1) sum++;
x=newx;
}while(newx!=0);
}
int main(){
char a[105];
while(cin.getline(a,105)){
for(int i=0;i<strlen(a);i++){
char ch=a[i];
if(ch==‘\0‘) break;
//ch是当前字符
toBinary(ch);
// cout<<"sum="<<sum<<endl;
if(sum%2==1) judge[0]=0;
else judge[0]=1;
for(int i=0;i<8;i++) printf("%d",judge[i]);
printf("\n");
}
}
}
原文:http://www.cnblogs.com/Elaine-DWL/p/6813037.html