位运算符
注:位运算是直接对整数的二进制进行的运算
没有<<<这个运算符
练习
唯一存在的数字
给定一个非空的整数数组,在该数组中,有一个元素只出现了一次,其余元素均出现了两次,请找出只出现过一次的元素。
int ans = 0;
for(int i = 0; i < nums.length; i++){
ans ^= nums[i];
}
return ans;
加密的情书
我和隔壁班的系花妹妹谈恋爱,为了让她记住我的生日,每次传情书我都要用九键拼音输入法加密成数字,再经过我生日的加密发给她,我的生日是 '19990606'
,加密方式将密文与我的生日进行 异或
运算。现在要对输入的字符串进行加密,给一串数字,通过与我生日 异或
运算进行加密后输出。
import java.util.*;
import java.math.BigInteger;
public class Main {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
BigInteger s1 = new BigInteger(s.nextLine());
BigInteger b = BigInteger.valueOf(19990606);
BigInteger x = b.xor(s1);
System.out.println(x);
}
}