24.6 연습문제 : 시프트 연산과 플그 활용하기
문제) 다음 소스 코드를 완성하여 4 0이 출력되게 만드세요
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
unsigned char flag1 = 1 << 7;
unsigned char flag2 = 1 << 3;
flag1 |= 1 << 2;
flag1 &= ~(1 << 7);
flag2 ^= 1 << 3;
printf("%u %u\n", flag1, flag2);
return 0;
}

24.7 심사문제 : 시프트 연산과 플래그 활용하기
문제) 표준 입력으로 두 정수가 입력됩니다(입력 값의 범위는 0~255). 플래그에 다음과 같은 연산을 하여 결과가 출력되게 만드세요. 정답에는 밑줄 친 부분에 들어갈 코드만 작성해야 합니다.
- num1의 비트를 왼쪽으로 3번 이동한 값으로 flag의 비트 켜기
- num2의 비트를 오른쪽으로 2번 이동한 값으로 flag의 비트 끄기
- flag의 첫 번째 비트 토글하기
#define __USE_MINGW_ANSI_STDIO 1 // Dev-C++(MinGW)에서 %hhu를 사용하기 위한 설정
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
unsigned char flag = 16;
unsigned char num1, num2;
scanf("%hhu %hhu", &num1, &num2);
flag |= num1 << 3;
flag &= ~(num2 >> 2);
flag ^= 128;
printf("%u\n", flag);
return 0;
}

'스터디 > 코딩' 카테고리의 다른 글
| [ 코딩 도장 : C ] Unit 26. switch 분기문으로 다양한 조건 처리하기 : 연습문제 / 심사문제 (0) | 2024.07.06 |
|---|---|
| [ 코딩 도장 : C ] Unit 25. 연산자 우선 순위 알아보기 : 연습문제 / 심사문제 (0) | 2024.07.06 |
| [ 코딩 도장 : C ] Unit 23. 비트 연산 사용하기 : 연습문제 / 심사문제 (0) | 2024.07.06 |
| [ 코딩 도장 : C ] Unit 22. 불 자료형 사용하기 : 연습문제 / 심사문제 (0) | 2024.07.05 |
| [ 코딩 도장 : C ] Unit 21. 논리 연산자 사용하기 : 연습문제 / 심사문제 (1) | 2024.07.05 |