1. 비트연산자
1.1. 비트연산자와 shift
<code />
#include <iostream>
#include <bitset> //2진수로 바꿔주는 라이브러리
int main()
{
using namespace std;
unsigned int a = 3;
cout << std::bitset<4>(a) << endl;
unsigned int b = a << 1;
cout << std::bitset<4>(b) << " " << b << endl;
return 0;
}
bitset은 2진수로 바꿔주는 라이브러리이다.
bitset<4>(a)는 a라는 변수를 4bit로 출력해준다.
그 밑의 a << 1 의 “<<”은 비트연산자로 left shift인데
이 처럼 왼쪽으로 한칸 밀어준다.
<code />
#include <iostream>
#include <bitset> //2진수로 바꿔주는 라이브러리
int main()
{
using namespace std;
unsigned int a = 3;
cout << std::bitset<8>(a << 1) << " " << (a << 1 ) << endl;
cout << std::bitset<8>(a << 2) << " " << (a << 2) << endl;
cout << std::bitset<8>(a << 3) << " " << (a << 3) << endl;
cout << std::bitset<8>(a << 4) << " " << (a << 4) << endl;
return 0;
}
또한 << (left shift) 비트 연산자를 취할 때마다 3에 2의 제곱들을 곱하는 것을 알 수 있다.
1.2. 비트연산자의 not
<code />
unsigned int a = 1024;
cout << std::bitset<16>(a) << endl;
cout << std::bitset<16>(~a) << " " << (~a) << endl;
비트연산자에서 != 은 logical not이기때문에 ~를 사용한다.
'개발 > C++' 카테고리의 다른 글
[C++] 3.4 비트플래그와 비트마스크 (2) | 2023.06.13 |
---|---|
[C++] 3.2 sizeof, 쉼표, 조건부 연산자 [ comma operator ] (0) | 2023.06.13 |
[C++] 3.1 연산자와 증감연산자 (0) | 2023.06.13 |
[C++] 2.4 리터럴 상수, 심볼릭 상수 (0) | 2023.06.12 |
[C++] 2.3 불리언 자료형과 if문, 문자형(Char) [캐스팅, 버퍼, limits] (0) | 2023.06.01 |