位运算符

image.png

注:位运算是直接对整数的二进制进行的运算

没有<<<这个运算符

image.png

image.png

练习

唯一存在的数字

给定一个非空的整数数组,在该数组中,有一个元素只出现了一次,其余元素均出现了两次,请找出只出现过一次的元素。

  1. int ans = 0;
  2. for(int i = 0; i < nums.length; i++){
  3. ans ^= nums[i];
  4. }
  5. return ans;

加密的情书

我和隔壁班的系花妹妹谈恋爱,为了让她记住我的生日,每次传情书我都要用九键拼音输入法加密成数字,再经过我生日的加密发给她,我的生日是 '19990606' ,加密方式将密文与我的生日进行 异或 运算。现在要对输入的字符串进行加密,给一串数字,通过与我生日 异或 运算进行加密后输出。

  1. import java.util.*;
  2. import java.math.BigInteger;
  3. public class Main {
  4. public static void main(String[] args){
  5. Scanner s = new Scanner(System.in);
  6. BigInteger s1 = new BigInteger(s.nextLine());
  7. BigInteger b = BigInteger.valueOf(19990606);
  8. BigInteger x = b.xor(s1);
  9. System.out.println(x);
  10. }
  11. }