题目描述
输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如’3’,输出:10110011)。
输入描述:
输入包括一个字符串,字符串长度不超过100。
输出描述:
可能有多组测试数据,对于每组数据,
对于字符串中的每一个字符,输出按题目进行奇偶校验后的数,每个字符校验的结果占一行。
示例1
输入
3
3a
输出
10110011
10110011
01100001
import java.util.Scanner;
public class Main{
public static void main(String[]args){
Scanner scanner=new Scanner(System.in);
while(scanner.hasNext()){
String str=scanner.nextLine();
for(int i=0;i<str.length();i++){
int ch=str.charAt(i);
if(oneNumber(ch)%2==0){
ch+=128;
}
System.out.println(num(ch));
}
}
}
public static String num(int ch){
int n=128;
StringBuilder sb=new StringBuilder();
for(int i=0;i<8;i++){
if((n & ch)==n){
sb.append("1");
}
else{
sb.append("0");
}
n=(n>>>1);
}
return sb.toString();
}
public static int oneNumber(int ch){
int count=0;
int n=1;
for(int i=0;i<8;i++){
if((ch&n)==n){
count++;
}
n=(n<<1);
}
return count;
}
}