One97 Interview Question
Software Engineer / Developerschar reverseBits(char ch) {
int out=0;
int in=(int)ch;
for (int i = 0; i < 16; i++) {
if( is_set(in, i) ) {
out=set_bit(out, 15-i);
}
}
return (char)out;
}
/** is bit[i] set */
boolean is_set(int x, int b) {
return ((x & (1 << b)))==(1<<b) ? true: false;
}
/** set bit[i] to 1 */
int set_bit(int y, int b) {
return y | (1 << b); // set the bit on, logical OR
}
- sv February 08, 2011