잡다한 공부

[정보처리기사] 정처기 실기 매크로, 비트연산

dzaaling 2025. 2. 18. 17:50
반응형

비트연산

비트연산자 종류

기호 의미
& 비트 논리곱 (AND) 5 & 3
| 비트 논리합 (OR) 5 |3
^ 비트 배타적 논리합 (XOR) 5 ^ 3
~ 비트 NOT ~5
>> 비트값을 우측으로 이동 5>>3
<< 비트값을 좌측으로 이동 5<<3

 

 

✅ AND : 두 개가 참일 때 참 

| 5 & 3 계산 하려면 10진법 숫자를 2진법으로 먼저 바꿔주어야 합니다. 

| 0 1 0 1 

| 0 0 1 1 

| 둘 다 참(1)인 경우는 0 0 0 1 입니다. (1)

 

 

✅ OR : 둘 중에 하나라도 참이면 참

| 0 1 0 1 

| 0 0 1 1
| 둘 중에 하나라도 참인 경우는 0 1 1 1 입니다. (7)

 

 

✅ XOR : 두 개가 틀려야 참인 것

| 0 1 0 1

| 0 0 1 1 

| 두 값이 틀려야 참이므로 0 1 1 0 입니다. (6)

 

 

✅ NOT : 

| 예시로 ~5 값이 양수라면 +1 한 후 부호를 바꿔주시면 됩니다. -6

| ~-5값이 음수라면 -1 한 후 부호를 +로 바꿔주면 됩니다. +4

 

 

✅ 시프트 연산 ( << , >> ) 

| << , >> 연산자는 피연산자의 비트열을 왼쪽, 오른쪽으로 지정한 자리수만큼 이동시키는 연산자입니다.

| 5<<3 도 마찬가지로 우선 5라는 숫자를 2진법으로 변경 해서 0101 이라는 값을 찾은 후 

| 0101000 이 됩니다. 다시 10진법으로 계산하게 되면 40이 됩니다. 

 


매크로

반복적인 일들을 쉽게 하기 위해 만들어 놓은 것.

| #define N 10

| #define SQR(X) X*X

 

✅ 매크로 (define) 선언 방법 

변수 처럼 선언 = N 10 

함수 처럼 선언 (인자를 받음) = SQR(X) X*X

#define N 10
#define SQR(X) X*X

SQR(N);
SQR(N+2);

 

▶️ 

| SQR(N) -> SQR(10) -> 10 * 10 -> 100

| SQR(N+2) 이 부분은 일반 함수랑 다르게 계산 되어야 합니다. 

| N+2 가 그대로 X가 되기 때문에 N+2 * N+2 가 됩니다.

| 10 + 2 * 10 + 2 식이 되는 것이고, 연산자 우선순위에 의해서 10 + 20 + 2 가 되고, 차례로 더하면 32가 됩니다. 

| * 함수처럼 생각하면 안되고 매크로 일때만 N+2 가 그대로 올라가야 하는 것이 중요합니다. 


📢

| 출처 : https://www.youtube.com/watch?v=avot35M_ETM

728x90
반응형