Binary Gap

public int binaryGap(int N) {
      // write your code in Java SE 8
      int gap=0, tgap=0;
      int q = N/2;
      int rm = N%2;
      boolean startFlg = false;

      while(q>0){
          System.out.println(rm);
          if(rm == 0 && startFlg) tgap++;
          if(rm == 1){
              if(tgap > gap) gap = tgap;
              tgap = 0;
              startFlg = true;
          }
          rm = q%2;
          q = q/2;
          
      }
      if(tgap > gap) gap = tgap;
      return gap;
  }

Count bitmasks

public int countBitmasks(int A, int B, int C) {
      // write your code in Java SE 8
      double sum = 0;
      sum = countConf(A) + countConf(B) + countConf(C);
      sum -= countConf(A | B); // counted twice
      sum -= countConf(A | C); // counted twice
      sum -= countConf(C | B); // counted twice
      sum += countConf(A | B | C); // removed twice

      
      return (int) sum;
  }


  private double countConf(int A) {
      String binaryStr = Integer.toBinaryString(A);
      long count = binaryStr.chars().filter(ch -> ch == '0').count();

      return Math.pow(2,count);
  }