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[] { ab | c, ab | d, a | cd, b | cd, ab | e,
ae | c, be | c, ae | d, be | d, cd | e
};
}
public static void main
(final String[] args
) { for (final long combo : toThreeBitCombinations(0b101010101)) {
System.
out.
printf("%9s\n",
Long.
toBinaryString(combo
)); }
}
}
ZmluYWwgY2xhc3MgSWRlb25lIHsKCXB1YmxpYyBzdGF0aWMgZmluYWwgbG9uZ1tdIHRvVGhyZWVCaXRDb21iaW5hdGlvbnMobG9uZyBlKSB7CiAgICAgICAgLy8gICBnZXQgbG93ZXN0IDEgYml0OyB0dXJuIG9mZiB0aGF0IGJpdDsKICAgICAgICBmaW5hbCBsb25nIGEgPSBlICYgLWU7IGUgXj0gYTsKICAgICAgICBmaW5hbCBsb25nIGIgPSBlICYgLWU7IGUgXj0gYjsKICAgICAgICBmaW5hbCBsb25nIGMgPSBlICYgLWU7IGUgXj0gYzsKICAgICAgICBmaW5hbCBsb25nIGQgPSBlICYgLWU7IGUgXj0gZDsKICAgICAgICAKICAgICAgICBmaW5hbCBsb25nIGFiID0gYSB8IGI7CiAgICAgICAgZmluYWwgbG9uZyBhZSA9IGEgfCBlOwogICAgICAgIGZpbmFsIGxvbmcgYmUgPSBiIHwgZTsKICAgICAgICBmaW5hbCBsb25nIGNkID0gYyB8IGQ7CiAgICAgICAgCiAgICAgICAgcmV0dXJuIG5ldyBsb25nW10geyBhYiB8IGMsIGFiIHwgZCwgYSB8IGNkLCBiIHwgY2QsIGFiIHwgZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlIHwgYywgYmUgfCBjLCBhZSB8IGQsIGJlIHwgZCwgY2QgfCBlCiAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oZmluYWwgU3RyaW5nW10gYXJncykgewogICAgCWZvciAoZmluYWwgbG9uZyBjb21ibyA6IHRvVGhyZWVCaXRDb21iaW5hdGlvbnMoMGIxMDEwMTAxMDEpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRmKCIlOXNcbiIsIExvbmcudG9CaW5hcnlTdHJpbmcoY29tYm8pKTsKICAgICAgICB9CiAgICB9Cn0=