비트 연산자 매크로
#define SET_BIT(MASK, Bit) (( MASK ) |= (0x01 << (Bit) ))
#define CLEAR_BIT(MASK, Bit) (( MASK ) &= ~(0x01 << (Bit) ))
#define TOGGLE_BIT(MASK, Bit) (( MASK ) ^= (0x01 << (Bit) ))
비트 연산자 함수
bool IsBit ( uint32& mask, const uint32 maskFlag ) { return !!(mask & maskFlag); }
void SetBit ( uint32& mask, const uint32 maskFlag ) { mask |= (maskFlag); }
void ClearBit ( uint32& mask, const uint32 maskFlag ) { mask &= ~(maskFlag); }
void ToggleBit( uint32& mask, const uint32 maskFlag ) { mask ^= (maskFlag); }
비트 연산자 템플릿 함수
#define BIT(x) (1<<(x))
template < typename T >
inline bool IsBit(const T& x, const T& bitFlag)
{
return !!(x & bitFlag);
}
template < typename T >
inline void SetBit(T& x, const T& bitFlag)
{
x = static_cast< T >(x | bitFlag);
}
template < typename T >
inline void ClearBit(T& x, const T& bitFlag)
{
x = static_cast< T >(x & (~bitFlag));
}
template < typename T >
inline void ToggleBit(T& x, const T& bitFlag)
{
x = static_cast< T >(x ^ bitFlag);
}
글 걸기 주소 : 이 글에는 트랙백을 보낼 수 없습니다
덧글을 달아 주세요