code: public static long invgrayC(long v) {
      v ^= (v >>> 1);
      v ^= (v >>> 2);
      v ^= (v >>> 4);
      v ^= (v >>> 8);
      v ^= (v >>> 16);
      v ^= (v >>> 32);
      return v;
    }
docs: Compute the inverted gray code, v XOR (v &gt;&gt;&gt; 1) XOR (v
  &gt;&gt;&gt; 2) ...
  
  @param v Value
  @return Inverted gray code