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