c++ 비트 연산자 이해하기
728x90
#include <iostream>
#include <bitset>
using namespace std;
int main()
{
bitset<8> bit1;
bit1.reset(); // 0000 0000
bit1 = 127; // 0111 1111
bitset<8> bit2;
bit2.reset();
bit2 = 0x20; // 32
bitset<8> bit3 = bit1 & bit2;
bitset<8> bit4 = bit1 | bit2;
bitset<8> bit5 = bit1 ^ bit2;
bitset<8> bit6 = ~bit1;
bitset<8> bit7 = bit2 << 1;
bitset<8> bit8 = bit2 >> 1;
cout << "bit1: " << bit1 << endl;
cout << "bit2: " << bit2 << endl;
cout << "bit1 & bit2: " << bit3 << ", " << bit3.to_ulong() << endl;
cout << "bit1 | bit2: " << bit4 << ", " << bit4.to_ulong() << endl;
cout << "bit1 ^ bit2: " << bit5 << ", " << bit5.to_ulong() << endl;
cout << "~bit1: " << bit6 << ", " << bit6.to_ulong() << endl;
cout << "bit2 << 1: " << bit7 << ", " << bit7.to_ulong() << endl;
cout << "bit2 >> 2: " << bit8 << ", " << bit8.to_ulong() << endl;
return 0;
}
8비트는 1바이트 이며 2의 8승인 256 가지를 표현할 수 있습니다
c++ 자료형 중에 char 가 8비트 1바이트 단위이기 때문에 8비트 단위로 예제를 구성했으며,
비트 연산에는 6가지 방법이 있습니다.
- A & B : A 와 B 를 and 연산
- A | B : A 와 B 를 or 연산
- A ^ B : A 와 B 의 xor 연산
- ~A : A 비트를 반전
- A >> n : A 모든 비트를 n만큼 오른쪽으로 시프트
- A << n : A 모든 비트를 n만큼 왼쪽으로 시프트
bitset을 include 합니다 c++ 에서는 c언어처럼 char 나 int 로 비트 연산을 하는 것보다 bitset 이라는 컨테이너를
사용하는 것이 수월합니다.
- bitset 변수를 선언하며 크기는 8로 지정합니다.
- bitset을 0 으로 초기화합니다.
- bitset 변수에 127(0111 1111)을 할당합니다.
728x90
'C++ > c++ - 알아두면 좋은 예제200' 카테고리의 다른 글
c++ 자료형의 크기(size of) (0) | 2020.10.26 |
---|---|
c++ 캐스트 연산자 (0) | 2020.10.25 |
c++ 조건부 삼항 연산자 이해하기(? :) (0) | 2020.10.25 |
c++ 문자열형 변수 이해하기(string) (0) | 2020.10.25 |
c++ 문자형 변수 이해하기(char) (0) | 2020.10.25 |
댓글
이 글 공유하기
다른 글
-
c++ 자료형의 크기(size of)
c++ 자료형의 크기(size of)
2020.10.26 -
c++ 캐스트 연산자
c++ 캐스트 연산자
2020.10.25 -
c++ 조건부 삼항 연산자 이해하기(? :)
c++ 조건부 삼항 연산자 이해하기(? :)
2020.10.25 -
c++ 문자열형 변수 이해하기(string)
c++ 문자열형 변수 이해하기(string)
2020.10.25