▶ 비트 필드의 개념
C에서 int형 멤버를 사용하기에는 너무 작은 값을 가질 경우, 이것을 일정한 비트 수만
큼 할당하여 표현 할 수 있다. 비트 필드는 C의 구조체나 공용체에서 하나 이상의 비트들
로 구성된 int형이나 unsigned int형 멤버이다.
type member_name : size
위와 같은 형식을 따르고 type은 int 또는 unsinned int이며, singed 비트 필드의 최상
위 한 비트는 부호 비트로 취급된다. size는 비트 필드에서 제시된 비트 수를 말하며, 폭
(width)이라 한다. 이것은 콜론(:) 다음 음수가 아닌 정수형 상수식으로 지정되며, 폭의
최대크기는 워드의 비트 수(32bit)와 같다.
비트 필드를 사용할 경우, 사용 시에 다음과 같은 제한 사항을 고려해야한다.
① int형 및 unsigned int 형의 변수만 정의 가능
② 비트 필드에 배열은 불허
③ 비트 필드는 주소를 가질 수 없다. & 연산자 또한 사용할 수 없다.
④ 비트 필드를 반환하는 함수 불허
⑤ 구조체 멤버 내에 int형 또는 unsigned int형 이외의 다른 형의 멤버가 혼재하는 경
우, 사용하지 않는 비트가 생길 수 있다.
비트필드 사용 예)
struct bitfield
{
unsigned int a : 2;
unsigned int b : 3;
};
struct bitfield bf = {3,2};
bf.a = 3, bf.b = 2 가 들어간다.
즉, bf.a 에는 11, bf.b에는 010 의 정해진 비트 수만큼의 이진수가 저장된다.
'Study' 카테고리의 다른 글
RGB 24bit를 RGB로 16bit로 변환하는 코드 (0) | 2009.02.19 |
---|---|
YCbCr과 RGB의 이미지 저장 구조 (0) | 2009.02.19 |
Directshow key word 정리 (0) | 2009.02.03 |
Graph edit 렌더링 방법(필터 그래프 구성 기술의 수식) (0) | 2009.01.30 |
OpenCV Cross Compile (0) | 2009.01.23 |