1. 16진수 8진수 표현 - 아래의 코드를 분석하여 출력값을 예상하고, 실행값과 비교하시오.
#include <stdio.h>
int main(void)
{
int num1 = 0x0F; // 16진수 리터럴
int num2 = 0x0B; // 16진수 리터럴
int num3 = 010; // 8진수 리터럴
int num4 = 011; // 8진수 리터럴
printf("0x0F의 10진수 정수 값: %d \n", num1);
printf("0x0B의 10진수 정수 값: %d \n", num2);
printf(" 010의 10진수 정수 값: %d \n", num3);
printf(" 011의 10진수 정수 값: %d \n", num4);
printf("%d-%d=%d \n", num1, num2, num1 - num2);
printf("%d+%d=%d \n", num3, num4, num3 + num4);
return 0;
}
2. 비트연산자 - 아래의 코드를 분석하여 출력값을 예상하고, 실행값과 비교하시오.
2.1 AND 연산자 - 둘 다 1인 비트만 1
#include <stdio.h>
int main(void)
{
int a = 12; // 00001100
int b = 10; // 00001010
int result = a & b; // 00001000
printf("a & b = %d\n", result); // 8
return 0;
}
2.2 OR연산자 - 하나라도 1이면 1
#include <stdio.h>
int main(void)
{
int a = 12; // 00001100
int b = 10; // 00001010
int result = a | b; // 00001110
printf("a | b = %d\n", result); // 14
return 0;
}
2.3 XOR 연산자 - 같으면 0, 다르면 1
#include <stdio.h>
int main(void)
{
int a = 12; // 00001100
int b = 10; // 00001010
int result = a ^ b; // 00000110
printf("a ^ b = %d\n", result); // 6
return 0;
}
2.4 ~ 연산자
#include <stdio.h>
int main(void)
{
int a = 10; // 00000000 00000000 00000000 00001010
int result = ~a;
printf("~a = %d\n", result); // -11
return 0;
}
2.5 << (왼쪽 shift) 연산자 - 비트를 왼쪽으로 이동 = ×2
#include <stdio.h>
int main(void)
{
int a = 3; // 00000011
int result = a << 2; // 00001100
printf("a << 2 = %d\n", result); // 12
return 0;
}
2.6 >> (오른쪽 shift) 연산자 - 비트를 왼쪽으로 이동 = ÷2
#include <stdio.h>
int main(void)
{
int a = 16; // 00010000
int result = a >> 2; // 00000100
printf("a >> 2 = %d\n", result); // 4
return 0;
}
'[1] 프로그래밍1 및 실습(C언어) > 2주차. 변수, 연산자,...' 카테고리의 다른 글
| [2주차] 3. printf()와 scanf()의 사용 (0) | 2026.03.09 |
|---|---|
| [2주차] 2. 연산자 - 개념 (0) | 2026.03.09 |
| [2주차] 1. 변수 - 개념 (0) | 2026.03.09 |