VMWare Inc Interview Question
Software EngineersCountry: United States
Interview Type: Written Test
int set_bit_l_to_r(int x, int y, int l, int r) {
int intNumBits = sizeof (int) * 8;
if (l > intNumBits || r > intNumBits) {
std::cout << "Out of range\n";
return x;
}
if (l <= 0 || r <= 0) {
std::cout << "Out of range\n";
return x;
}
int right, left;
if (l >= r) {
left = l;
right = r;
}
else {
left = r;
right = l;
}
int mask;
//mask everything not in range
mask = pow(2, (left - right + 1)) - 1;
//get actual mask
mask = mask << (right-1);
mask = mask & y;
return (x |= mask);
}
- Mukesh July 07, 2016