티스토리 뷰
1. 비트구조체란?
- 비트(Bit)를 멤버로 가지는 구조체로, Bit Field라고도 함
2. 선언 방법
typedef struct 구조체명 {
변수타입 멤버1 : 비트수,
멤버2 : 비트수,
.....
멤버n : 비트수;
} 구조체변수명;
- 비트 수는 원칙적으로 정수만 가능하며, 변수의 크기와 할당한 비트수의 합은 일치해야 함!
ex) UINT16을 이용해 비트를 할당했으면, 비트수의 합은 16이 되어야 함
- 일반적으로 비트로 표현해야 할 정보는 수치값이라기보다는 기호, 표식인 경우가 많아 부호를 쓰는 경우는 드물고,
따라서 비트 구조체의 멤버들은 보통 unsigned 타입
typedef struct Bit_Field { UINT32 m_DataBit1 : 4, // UINT32(부호없는 32비트 정수) 형의 변수를 선언했으므로, //Bit_Field 멤버들의 합은 32가 되야 함 m_DataBit2 : 4, m_DataBit3 : 4, m_DataBit4 : 4, m_DataBit5 : 16; } sBit_Field;
=> 위와 같이 구조체를 정의했을 때,
m_DataBit1은 0~3(4Bit), m_DataBit2는 4~7(4Bit), m_DataBit3은 8~11(4Bit), m_DataBit4는 12~15(4Bit),
m_DataBit 5는 16~32(16Bit) 의 비트 공간을 할당받는다.
여기서, SBit_Field.m_DataBit3 = 5; 의 코드로 3번에 할당된 비트의 값을 0101로 변경한다면
8번째, 10번째 비트가 1이 되어 값은 0000 0000 0000 0000 0000 0101 0000 0000 이 될 것이다.
또한, 비트 값을 변경할 때 10진수 숫자 대신 다음과 같이 입력하여 비트값을 변경할수도 있다.
SBit_Field.m_DataBit2 = 0b1110; => 0000 0000 0000 0000 0000 0000 1110 0000
'C C++ > C++' 카테고리의 다른 글
[C++] 난수 생성 - rand(), srand() (0) | 2018.05.04 |
---|---|
Linux 환경에서의 pthread (0) | 2018.02.17 |
[C++] SingleTon Pattern (0) | 2018.02.17 |
[C++] this (0) | 2018.02.17 |
[C++] \n과 \r의 차이 (0) | 2017.12.06 |
- Total
- Today
- Yesterday
- 종로다이아반지추천
- C++
- 롯데리아
- 부평
- MFC
- 본식예복
- 부평맛집
- 그래픽카드후기
- Visual Studio
- 종로결혼반지추천
- 브리달메이
- 광명무역센터컨벤션 dvd
- 종로프로포즈링추천
- 브리달메이결혼반지
- 냉면
- 백준알고리즘
- 무한리필
- 광명 본식 dvd
- 종로브리달메이
- 라레토페이백
- 브리달메이다이아
- 라레토추천인
- 가성비맞춤정장
- 가성비예복
- 본식맞춤예복
- 브리달메이웨딩밴드
- 광명 무역센터 블랑논
- 광명무역센터컨벤션
- 광명무역센터컨벤션 #본식스냅 #메인스냅 #서브스냅 #촬영후기 #1인작가 #대표작가 #하루그라피
- 가산디지털단지 맛집
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |