您的位置:首页 > 其它

1197_奇偶校验

2013-07-13 13:51 531 查看
题目1197:奇偶校验

时间限制:1 秒
内存限制:32 兆
特殊判题:
提交:2132
解决:833

题目描述:
输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'3’,输出:10110011)。

输入:
输入包括一个字符串,字符串长度不超过100。

输出:
可能有多组测试数据,对于每组数据,

对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。

样例输入:
3
3a


样例输出:
10110011
10110011
01100001

********************************************************************

#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
int count;
int n;
int bit[7];//ascii只有7位
int j;
while(cin>>s)
{
for(int i=0;i!=s.size();i++)
{
count=j=0;
n=s[i];
while(n!=0)//将一个整型数转换成二进制数
{
bit[j]=n%2;
if(bit[j]==1)//计算有多少个 1;
count+=1;
n=n/2;
j+=1;
}
while(j!=7)//共7位,空出的高位补0
{
bit[j]=0;
j+=1;
}
if(count%2==0)//偶数个 1
{
cout<<"1";
for(int j=0;j!=7;j++)
cout<<bit[6-j];
cout<<endl;
}
else//奇数个 1
{
cout<<"0";
for(int j=0;j!=7;j++)
cout<<bit[6-j];
cout<<endl;
}
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: