진수는 숫자 체계에서 사용되는 기본 단위입니다. 일반적으로 우리가 사용하는 숫자 체계는 10진수이며, 0부터 9까지의 숫자를 사용합니다. 하지만 컴퓨터 과학에서는 이외에도 2진수, 8진수, 16진수가 자주 사용됩니다.
10진수의 숫자를 다른 진수로 변환하는 것은 매우 중요한 과정입니다. 이 예제에서는 10진수 87을 2진수와 16진수로 변환하는 과정을 설명합니다.
2진수로 변환하기 위해서는 숫자를 2로 나누고, 그 나머지를 기록한 뒤 몫이 0이 될 때까지 계속 나눕니다.
나머지 값을 역순으로 나열하면 2진수 1010111이 됩니다.
16진수로 변환할 때는 2진수를 오른쪽에서부터 4자리씩 끊어서 각각의 값을 계산합니다.
따라서, 16진수로 변환된 값은 57이 됩니다.
비트 단위 논리 연산자는 2진수 각 비트별로 연산을 수행합니다. 주요 논리 연산자에는 AND(&), OR(|), NOT(~), XOR(^)가 있습니다. 각 연산자의 작동 방식은 다음과 같습니다:
먼저 87과 53을 2진수로 변환합니다.
이제 AND 연산을 수행합니다.
1010111 (87)
& 0110101 (53)
--------
0010101
연산 결과는 2진수 0010101이며, 이를 10진수로 변환하면 21이 됩니다.
마지막으로, 코드는 cout
을 사용하여 87과 53의 AND 연산 결과를 출력합니다.
cout << "87 & 53 : " << (87 & 53) << endl;
이 코드는 "87 & 53 : 21"이라는 결과를 출력하게 됩니다.
이번 포스트에서는 진수의 개념과 10진수를 2진수와 16진수로 변환하는 방법, 그리고 비트 단위 논리 연산자에 대해 설명했습니다. 실제 예제 코드를 통해 87과 53의 AND 연산 결과를 도출하며, 비트 연산의 개념을 더욱 쉽게 이해할 수 있었습니다.
진수 변환과 비트 연산은 컴퓨터 과학에서 매우 중요한 개념이므로, 이번 포스트를 통해 기본 개념을 확실히 다질 수 있었기를 바랍니다. 다음 포스트에서는 더욱 복잡한 예제와 함께 비트 연산자의 활용 방법을 다뤄보겠습니다.