|
비트 연산에 대해서는 불사새님께 많이 배우셨을 줄로 압니다.
참고로 ANSI C++ 라이브러리는 이러한 비트 연산을 위해 특화된 클래스인 bitset을
제공합니다.
실제로 비트 연산을 개발에 적용하실 때는 bitset을 써보심도 좋을 듯합니다.
#include <iostream>
#include <bitset>
using namespace std;
#pragma argsused
int main(int argc, char* argv[])
{
int n;
cout << "Enter a integer: " << flush;
if (cin >> n) {
bitset<16> x(n);
cout << "x = " << x << endl;
cout << "As ulong: " << x.to_ulong() << endl;
cout << "1's complement: " << x.flip() << endl;
bitset<16> y(x.to_ulong() + 1);
cout << "2's complement: " << y << endl;
}
return 0;
}
//---------------------------------------------------------------------------
실행 결과는 다음과 같습니다.
Enter a integer: 2730
x = 0000101010101010
As ulong: 2730
1's complement: 1111010101010101
2's complement: 1111010101010110
|