异或

来源:互联网 发布:趣推软件下载 编辑:程序博客网 时间:2024/04/29 21:11

题目:现在输入两个数n位二进制数,输出他们的亦或结果的十进制答案。

输入三行:第一行n(1<=n<=20)

                   第二行:a(n位)

                   第三行:b(n位)

输出:异或结果的十进制数。

 

思路:首先需要从控制台输入要异或对象的位数n,然后输入异或的连个对象,接着比较两个对象每一位的字符,如果相同则为0如果不同则为1;最后把结果存到stringbuilder中,输出stringBuilder,并调用parseInt(,)方法吧二进制转换为十进制。(注意控制台输入的是字符串,如果需要用到整数必须进行转换)

import java.util.Scanner;

public class yihuo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //在控制台输入要进行亦或的进制位数n
         Scanner in=new Scanner(System.in);
         //将控制台输入的字符串转变成整形

         int n=Integer.parseInt(in.nextLine());

        //输入要异或的对象a、b

         String s1=in.nextLine();
         String s2=in.nextLine();
         //创建一个缓存对象StringBuilder

         StringBuilder sb=new StringBuilder();

        //比较每一位数的字符

         for(int i=0;i<n;i++)
         {
             if(s1.charAt(i)==s2.charAt(i))
             {
                 sb.append("0");
             }else
             {
                 sb.append("1");
             }
         }
         //将stringBuilder中的二进制转化为十进制。
         String s=sb.toString();

         int b=Integer.parseInt(s,2);

         System.out.println(b);
    }

}


0 0