BIT 연산(비트 연산자)

비트 연산자 매크로
#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);
}

2010/02/24 15:26 2010/02/24 15:26

글 걸기 주소 : 이 글에는 트랙백을 보낼 수 없습니다

덧글을 달아 주세요