티스토리 뷰
반응형
오늘 알아볼 것은 bit 연산이야!
bit 연산이 뭘까?
8bit = 1byte 인건 알고있지?
그러면 int 는 4byte = 32bit 같은거야
bit 란 데이터를 나타내는 제일 작은 단위야 0과 1로 구성되어 있지
0과1을 on/off 로 표현한걸 flag🏁 라고도 말해
이걸 사용하면 공간을 좀더 효율적으로 사용하는게 가능해
🏁flag 이건 상태를 저장할때 쓰여!
우리가 8가지 상태를 저장할때 bool 을 8번 선언 해서 사용할수도 있을텐데
bit flag 를 사용하면 char 을 하나만 사용해도 8가지 상태를 저장할수 있다는거야
1byte 만 사용해서 8가지 상태 저장을 할수있는거지
그래서 어떻게 쓰는건데?
& | 비트 AND 연산 | 비교되는 인자가 둘다 참일때 참 |
| | 비트 OR 연산 | 비교되는 인자가 하나라도 참이면 참 |
^ | 비트 XOR 연산 | 비교되는 인자가 서로 다르면 참 |
~ | 비트 NOT 연산 | 인자의 값을 반전시킨다 |
<< | 비트 쉬프트 연산 | 비트값을 왼쪽으로 지정한 횟수만큼 이동한다. |
>> | '' | 비트값을 오른쪽으로 지정한 횟수만큼 이동한다. |
이 표를 보면 if 문의 and , or 문에서 본적있는거 같지?
unsigned char Flag1 = 5; //0000 0101
unsigned char Flag2 = 3; //0000 0011
printf("%d",Flag1 & Flag2); //0000 0001
printf("%d",Flag1 | Flag2); //0000 0111
printf("%d",Flag1 ^ Flag2); //0000 0110
printf("%d",~Flag1); // 1111 1010
printf("%d",Flag1 << 1); // 0000 1010
printf("%d",Flag1 >> 2); // 0000 0001
unsigned char (범위 = 0~255)
이처럼 사용된다 게임에서는 플레이어의 상태 같은걸 만든다고 생각하면 편하다.
'언어 > C++' 카테고리의 다른 글
c++ std::function 사용하기 (0) | 2023.01.10 |
---|---|
함수 포인터! (Function Pointer)! (0) | 2021.07.13 |
인라인 함수(Inline Function) (0) | 2021.06.15 |
네임스페이스 (9) | 2021.05.18 |
call by reference/call by value/call by address (0) | 2021.05.03 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 프로그래머스
- null
- 타잔 알고리즘
- unity
- Topologically sorted
- tarjan
- 유니티
- 프로그래머스:여행경로
- 영우의 방청소
- 토마토맛토
- ??
- 무료 gpt 유니티
- 오블완
- 구간끼리 덧셈
- 알고리즘
- 도넛과 막대그래프
- 노미노
- 백준
- 색종이 자르기
- cpp 알고리즘
- 토맛토마토
- 내가 자주씀
- Cpp
- 티스토리챌린지
- 석유 시추
- Algorithm
- c#
- 유니티 데칼 (decal)
- HDRP
- 함수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
글 보관함