7inline static auto get_bit(T val,
unsigned int bit)
noexcept
9 return ((val & (1 << bit)) >> bit);
13inline static auto get_bit_range(T val,
unsigned int offset,
unsigned int length)
noexcept
15 return ((val & (((1 << length) - 1) << offset)) >> offset);
19inline static void set_bit(T& val,
unsigned int bit)
noexcept
25inline static void clear_bit(T& val,
unsigned int bit)
noexcept
27 val &= (val & ~(1 << bit));
31inline static void set_bit_flag(T& val, T
flag)
noexcept
37inline static void clear_bit_flag(T& val, T
flag)
noexcept
39 val &= (val & (~flag));
43inline static auto check_bit_flag(T value, T
flag)
noexcept
48inline static auto get_low_nibble(
unsigned char value)
noexcept
50 return static_cast<unsigned char>(value & 0x0F);
53inline static auto get_high_nibble(
unsigned char value)
noexcept
55 return static_cast<unsigned char>((value & 0xF0) >> 4);