given two integers and two bit positions. Set the first integer between the two bit positions to be that of the second integer.
Solution:
The trickiest part is to calculate the mask:
int replace_bits(int a, int b, int x, int y) { int mask = ((1 << (y - x + 1)) - 1) << x; // Clear a and replace with that of b return ((a & ~mask) | (b & mask)); }
Complexity:
time - O(1)Links and credits:
space - O(1)
http://www.careercup.com/question?id=13532675
No comments:
Post a Comment