final class Ideone {
public static final long[] toThreeBitCombinations(long e) {
// get lowest 1 bit; turn off that bit;
final long a = e & -e; e ^= a;
final long b = e & -e; e ^= b;
final long c = e & -e; e ^= c;
final long d = e & -e; e ^= d;
final long ab = a | b;
final long ae = a | e;
final long be = b | e;
final long cd = c | d;
return new long[] { cd | e, be | d, ae | d, be | c, ae | c,
ab | e, b | cd, a | cd, ab | d, ab | c
};
}
public static void main
(final String[] args
) { for (final long combo : toThreeBitCombinations(0b101010101)) {
System.
out.
printf("%9s\n",
Long.
toBinaryString(combo
)); }
}
}
ZmluYWwgY2xhc3MgSWRlb25lIHsKCXB1YmxpYyBzdGF0aWMgZmluYWwgbG9uZ1tdIHRvVGhyZWVCaXRDb21iaW5hdGlvbnMobG9uZyBlKSB7CiAgICAgICAgLy8gICBnZXQgbG93ZXN0IDEgYml0OyB0dXJuIG9mZiB0aGF0IGJpdDsKICAgICAgICBmaW5hbCBsb25nIGEgPSBlICYgLWU7IGUgXj0gYTsKICAgICAgICBmaW5hbCBsb25nIGIgPSBlICYgLWU7IGUgXj0gYjsKICAgICAgICBmaW5hbCBsb25nIGMgPSBlICYgLWU7IGUgXj0gYzsKICAgICAgICBmaW5hbCBsb25nIGQgPSBlICYgLWU7IGUgXj0gZDsKICAgICAgICAKICAgICAgICBmaW5hbCBsb25nIGFiID0gYSB8IGI7CiAgICAgICAgZmluYWwgbG9uZyBhZSA9IGEgfCBlOwogICAgICAgIGZpbmFsIGxvbmcgYmUgPSBiIHwgZTsKICAgICAgICBmaW5hbCBsb25nIGNkID0gYyB8IGQ7CiAgICAgICAgIAogICAgICAgIHJldHVybiBuZXcgbG9uZ1tdIHsgY2QgfCBlLCBiZSB8IGQsIGFlIHwgZCwgYmUgfCBjLCBhZSB8IGMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYiB8IGUsIGIgfCBjZCwgYSB8IGNkLCBhYiB8IGQsIGFiIHwgYwogICAgICAgICAgICAgICAgICAgICAgICAgIH07Cgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKGZpbmFsIFN0cmluZ1tdIGFyZ3MpIHsKICAgIAlmb3IgKGZpbmFsIGxvbmcgY29tYm8gOiB0b1RocmVlQml0Q29tYmluYXRpb25zKDBiMTAxMDEwMTAxKSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50ZigiJTlzXG4iLCBMb25nLnRvQmluYXJ5U3RyaW5nKGNvbWJvKSk7CiAgICAgICAgfQogICAgfQp9