https://leetcode.com/problems/reverse-bits/

1. Use bit mask to build a new 32 bits unsigned integer:

  1. //4 ms 6.2 MB
  2. class Solution {
  3. public:
  4. uint32_t reverseBits(uint32_t n) {
  5. uint32_t reversed = 0;
  6. for(int i = 31; i>=0; i--){
  7. if(getBit(n, i)){
  8. reversed = setBit(reversed, 31-i);
  9. }
  10. }
  11. return reversed;
  12. }
  13. private:
  14. bool getBit(int num, int i){ //is this position a bit
  15. uint32_t mask = (1 << i);
  16. return (num & mask) != 0;
  17. }
  18. int setBit(int num, int i){ // set a bit
  19. uint32_t mask = (1 << i);
  20. return num | mask;
  21. }
  22. };