2012-03-15 4 views
2

개념적 차이점은 무엇입니까? 나는 C에서 비트 마스크와 비트 맵의 ​​차이점

struct{ 
    int bit1: 1; 
    int bit2: 1; 
    int bit3: 1; 
    }; 

그래서 THT의 경우에 우리가 열거에 대해 정의 뭔가를 비트 마스크입니다 .. 비트 맵이 구조체의 비트 필드의 종류 알아?

+3

"비트 맵"과 "비트 마스크"는 C 사양에서 사용되는 단어가 아닙니다. "bitfield"는이고, 당신의 예제는 하나를 보여줍니다. 당신이 묻고 자하는 것을 설명해 주시겠습니까? –

답변

8

비트 마스크는 비트 연산을 수행 할 때 특정 비트를 "마스크"하는 데 사용되는 정수 유형입니다. 예를 들어, 은 32 비트 부호없는 값을 마스크하는 데 사용될 수 있습니다. 한 번에 모든 비트에 대해 작업해야하므로 0x00000001은 마지막 비트에서만 작동합니다. 종종 '대칭'버전으로 정의 된 비트 마스크를 확인한 다음 ~을 사용하여 대칭 이동합니다.

반면에 비트 맵은 개별 비트에 각각 매핑되는 변수 집합입니다. 이 방법은 여러 가지가 있습니다. 구조체는 비트 맵의 ​​한 가지 예입니다.

열거 형에 여러 가지 마스크를 넣어 쉽게 액세스 할 수 있지만 꼭 그렇게해야 할 필요는 없습니다.

+1

비트 맵도 이미지입니다. –

+3

@CarlNorum 및 제비꽃은 파란색, 장미는 빨간색 및 cpt입니다. 분명하다. 그것은 당신의 코멘트와 공통점이 하나 있는데 - 프로그래밍과 관련이 없습니다. – AoeAoe

+1

ohkk .. 의견을 보내 주셔서 대단히 감사합니다. 이제 두 조건을 모두 이해합니다. – rain

관련 문제