'bit field'에 해당되는 글 1건

  1. 2013.02.15 Bit Field

Bit Field

Programming/C 2013. 2. 15. 04:12 |

비트(Bit) - 데이터(자료)를 표현하기 위한 최소 단위.

필드(Field) - 데이터(자료)를 처리하기 위한 최소 단위


비트 필드

: 비트 구조체는 비트들을 멤버로 가지는 구조체이며, 비트 필드(Bit Field) 라고도 부른다.

: 비트 하나로 2가지를 표현할 수 있다. (0, 1) 비트 두개로는 4가지를 표현할 수 있다. 

 즉, 비트 n개는...  로 표현이 된다.


비트 필드를 쓰는 이유

: 멤버가 가질 수 잇는 값의 범위가 아주 작다면 char보다 더 작은 단위로 비트를 쪼개어 알뜰히 정보를 기억시킬 수 있다. 이때 사용하는 것이 "비트 필드"이다.


기본 틀

: struct 이름

{

타입 멤버1 : 비트 수;

타입 멤버2 : 비트 수;

...

};

: 멤버의 타입은 정수만 가능하며, 부호의 여부에 따라 unsigned, signed int 둘 중 하나의 타입을 지정한다.

: 비트로 표현해야 할 정보는 수치값이라기보다는 일종의 기호나 표식인 경우가 많이 때문에 부호를 쓰는 경우는 드물다. 따라서 비트 필드의 멤버들은 통상 unsigned 타입이다.

: double 자료형이나 포인터, 배열은 비트 필드가 될 수 없다.



: A는 1비트를 사용함으로 0~1 까지 표현 가능하다.

: B와 C는 2비트를 사용함으로 0~3 까지 표현 가능하다. 

: D는 3비트를 사용함으로 0~7 까지 표현 가능하다.    


 A(1bit)

B (2Bit) 

C (2Bit) 

D (3Bit)

 1

1         1

0         0

1         1        1 


※ C는 4를 넣어서 표현 한계인 3을 넘어버렸다. 그래서 오버플로우가 발생하여 경고 메시지가 뜨고 실행이 안되는 것이다. 

C 변수는 0~3 까지 표현 가능하다는 사실을 알 수 있다. 






비트 필드의 활용 예



'Programming > C' 카테고리의 다른 글

void pointer 예제  (0) 2013.09.18
scanf 함수의 리턴 값  (0) 2013.03.27
Bit Mask  (0) 2013.02.15
시간과 날짜 관련 함수들  (0) 2013.02.15
난수 (Random Number)  (0) 2013.02.15
Posted by scii
: