/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
private static int reverseBits(int value) {
return value
^ ((Integer.
highestOneBit(value
) << 1) - 1); }
private static void test(int testId, int input, int expected) {
int actual = reverseBits(input);
if (expected == actual) {
System.
out.
printf("Test %d OK%n", testId
); } else {
System.
out.
printf("Test %d failed, expected: %d, actual: %d%n", testId, expected, actual
); }
}
{
test(1, 10, 5);
test(2, 0xf0, 0x0f);
test(3, 0xff0, 0x00f);
test(4, 1, 0);
test(5, 2, 1);
test(6, 8, 7);
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCQoJcHJpdmF0ZSBzdGF0aWMgaW50IHJldmVyc2VCaXRzKGludCB2YWx1ZSkgewoJICByZXR1cm4gdmFsdWUgXiAoKEludGVnZXIuaGlnaGVzdE9uZUJpdCh2YWx1ZSkgPDwgMSkgLSAxKTsKCX0KCQoJcHJpdmF0ZSBzdGF0aWMgdm9pZCB0ZXN0KGludCB0ZXN0SWQsIGludCBpbnB1dCwgaW50IGV4cGVjdGVkKSB7CgkJaW50IGFjdHVhbCA9IHJldmVyc2VCaXRzKGlucHV0KTsKCSAgICBpZiAoZXhwZWN0ZWQgPT0gYWN0dWFsKSB7CgkgICAgCVN5c3RlbS5vdXQucHJpbnRmKCJUZXN0ICVkIE9LJW4iLCB0ZXN0SWQpOwoJICAgIH0gZWxzZSB7CgkgICAgCVN5c3RlbS5vdXQucHJpbnRmKCJUZXN0ICVkIGZhaWxlZCwgZXhwZWN0ZWQ6ICVkLCBhY3R1YWw6ICVkJW4iLCB0ZXN0SWQsIGV4cGVjdGVkLCBhY3R1YWwpOwoJICAgIH0JCgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCXRlc3QoMSwgMTAsIDUpOwoJCXRlc3QoMiwgMHhmMCwgMHgwZik7CgkJdGVzdCgzLCAweGZmMCwgMHgwMGYpOwoJCXRlc3QoNCwgMSwgMCk7CgkJdGVzdCg1LCAyLCAxKTsKCQl0ZXN0KDYsIDgsIDcpOwoJfQp9