Bit field 예제
임베디드 개발하는데 필수적으로 레지스터 건드릴때 쓰는 bit field입니다.
어렵게 글로 설명하는 것보다 그림과 코드를 보는게 낫겠습니다.
[A:6][B:4][C:6][D:16]
숫자는 bit이고 총 합이 32bits 인 데이터가 있습니다.
typedef union { struct { unsigned int A : 6; /* [0:5] */ unsigned int B : 4; /* [6:9] */ unsigned int C : 6; /* [10:15] */ unsigned int D : 16; /* [16:31] */ } bits; unsigned int value; } Register;
Union의 개념만 익숙하다면 너무 쉽네요.
[A:6][B:4][C:6][D:16] = [value:32]
댓글
댓글 쓰기