bitfunc.h 393 B

12345678910111213141516171819202122
  1. ...........................................#pragma once
  2. #ifndef __BITFUNC_H_
  3. #define __BITFUNC_H_
  4. template<typename T>
  5. constexpr void SET_BIT(T& x,int idx) {
  6. x |= 1u << idx;
  7. }
  8. template<typename T>
  9. constexpr int GET_BIT(T x, int idx) {
  10. return (x >> idx) & 1u;
  11. }
  12. template<typename T>
  13. constexpr int get_bit_count(T x) {
  14. int s = 0;
  15. while (x) {
  16. s += x & 1;
  17. x >>= 1;
  18. }
  19. return s;
  20. }
  21. #endif