fork download
  1. #include <iostream>
  2. #include <climits>
  3. #include <limits>
  4. #include <bitset>
  5. #include <cassert>
  6.  
  7. bool is_null(int n)
  8. {
  9. size_t bit_sum = 0;
  10.  
  11. const int bit_size = sizeof(int) * CHAR_BIT;
  12. std::bitset<bit_size> bits(n);
  13.  
  14. for(size_t i = 0; i < bits.size(); ++i)
  15. {
  16. bit_sum += bits[i];
  17. }
  18.  
  19. return bit_sum == 0;
  20. }
  21.  
  22. int main()
  23. {
  24. assert(is_null(0) == true);
  25.  
  26. assert(is_null(1) == false);
  27. assert(is_null(-1) == false);
  28.  
  29. assert(is_null(std::numeric_limits<int>::min()) == false);
  30. assert(is_null(std::numeric_limits<int>::max()) == false);
  31.  
  32. return 0;
  33. }
Success #stdin #stdout 0s 3136KB
stdin
Standard input is empty
stdout
Standard output is empty