23.6 연습문제 : 비트 논리 연산자 사용하기
문제) 다음 소스 코드를 완성하여 5, 4, 1, 250이 각 줄에 출력되게 만드세요.
#include <stdio.h>
int main()
{
unsigned char num1 = 1;
unsigned char num2 = 5;
printf("%u\n", num1 | num2); //|or 하나라도
printf("%u\n", num1 ^ num2); //^xor 같으면 0, 다르면 1
printf("%u\n", num1 & num2); //&and 둘다
num1 = ~ num2; //~not
printf("%u\n", num1);
return 0;
}

23.7 연습문제 : 시프트 연산자 사용하기
문제) 다음 소스 코드를 완성하여 4가 출력되게 만드세요.
#include <stdio.h>
int main()
{
unsigned char num1 = 32;
num1 = num1 >> 4 << 1;
printf("%u\n", num1);
return 0;
}

23.8 심사문제 : 비트 논리 연산자 사용하기
문제) 표준 입력으로 두 정수(unsigned int)가 입력됩니다. 입력된 두 정수의 비트 연산 결과를 각 줄에 출력하는 프로그램을 만드세요(scanf 함수 호출 전에 문자열을 출력하면 안 됩니다).
- num1과 num2을 비트 XOR 연산
- num1과 num2을 비트 OR 연산
- num1과 num2를 비트 AND 연산
- num1을 비트 NOT 연산
출력 결과는 서식 지정자 %u를 사용하세요.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
unsigned int num1;
unsigned int num2;
scanf("%d %d", &num1, &num2);
printf("%u\n", num1^num2);
printf("%u\n", num1|num2);
printf("%u\n", num1&num2);
printf("%u\n", ~num1);
return 0;
}

23.9 심사문제: 시프트 연산자 사용하기
문제) 표준 입력으로 정수가 입력됩니다. 입력된 정수를 왼쪽으로 20번, 오른쪽으로 4번 시프트 연산하여 결과를 출력하는 프로그램을 만드세요(scanf 함수 호출 전에 문자열을 출력하면 안 됩니다). 단, 정수형 변수는 unsigned long long으로 선언하고 출력 결과는 서식 지정자 %llu를 사용하세요.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
unsigned long long num1;
scanf("%lld", &num1);
num1 = num1 << 20 >> 4;
printf("%llu\n", num1);
return 0;
}

>> 서식지정자 항상 유념하기!! 값이 정상적으로 나온다고해도 맞춰주는게 좋쥐 ^>^
| 서식 지정자 | 자료형 | 의미 |
| %c | char | 문자 |
| %s | char*, char[] | 문자열 |
| %hd | short | 부호를 포함한 2byte 크기의 정수 (10진수) |
| %d | int | 부호를 포함한 int 타입 크기의 정수 (10진수) |
| %ld | long | 부호를 포함한 long 타입 크기의 정수 (10진수) |
| %lld | long long | 부호를 포함한 8byte 크기의 정수 (10진수) |
| %hi | short | 부호를 포함한 2byte 크기의 정수 (10진수) |
| %i | int | 부호를 포함한 int 타입 크기의 정수 (10진수) |
| %li | long | 부호를 포함한 long 타입 크기의 정수 (10진수) |
| %lli | long long | 부호를 포함한 8byte 크기의 정수 (10진수) |
| %hu | unsigned short | 부호를 포함하지 않는 2byte 크기의 정수 (10진수) |
| %u | unsigned int | 부호를 포함하지 않는 int 타입 크기의 정수 (10진수) |
| %lu | unsigned long | 부호를 포함하지 않는 long 타입 크기의 정수 (10진수) |
| %llu | unsigned long long | 부호를 포함하지 않는 8byte 크기의 정수 (10진수) |
| %ho | unsigned short | 부호를 포함하지 않는 2byte 크기의 정수 (8진수) |
| %o | unsigned int | 부호를 포함하지 않는 int 타입 크기의 정수 (8진수) |
| %lo | unsigned long | 부호를 포함하지 않는 long 타입 크기의 정수 (8진수) |
| %llo | unsigned long long | 부호를 포함하지 않는 8byte 크기의 정수 (8진수) |
| %hx | unsigned short | 부호를 포함하지 않는 2byte 크기의 정수 (16진수, abcdef 를 소문자로 표기) |
| %x | unsigned int | 부호를 포함하지 않는 int 타입 크기의 정수 (16진수, abcdef 를 소문자로 표기) |
| %lx | unsigned long | 부호를 포함하지 않는 long 타입 크기의 정수 (16진수, abcdef 를 소문자로 표기) |
| %llx | unsigned long long | 부호를 포함하지 않는 8byte 크기의 정수 (16진수, abcdef 를 소문자로 표기) |
| %hX | unsigned short | 부호를 포함하지 않는 2byte 크기의 정수 (16진수, ABCDEF 를 대문자로 표기) |
| %X | unsigned int | 부호를 포함하지 않는 int 타입 크기의 정수 (16진수, ABCDEF 를 대문자로 표기) |
| %lX | unsigned long | 부호를 포함하지 않는 long 타입 크기의 정수 (16진수, ABCDEF 를 대문자로 표기) |
| %llX | unsigned long long | 부호를 포함하지 않는 8byte 크기의 정수 (16진수, ABCDEF 를 대문자로 표기) |
| %f | float | 소수점으로 표현한 4byte 크기의 실수 (10진수) |
| %lf | double | 소수점으로 표현한 8byte 크기의 실수 (10진수) |
| %llf , %Lf | long double | 소수점으로 표현한 long double 타입 크기의 실수 (10진수) |
| %e | float | 지수 표기법으로 표현한 4byte 크기의 실수 (10진수, 소문자 e) |
| %le | double | 지수 표기법으로 표현한 8byte 크기의 실수 (10진수, 소문자 e) |
| %Le | long double | 지수 표기법으로 표현한 long double 타입 크기의 실수 (10진수, 소문자 e) |
| %E | float | 지수 표기법으로 표현한 4byte 크기의 실수 (10진수, 대문자 E) |
| %lE | double | 지수 표기법으로 표현한 8byte 크기의 실수 (10진수, 대문자 E) |
| %LE | long double | 지수 표기법으로 표현한 long double 타입 크기의 실수 (10진수, 대문자 E) |
| %g | float | %f 와 %e 둘중에 짧은 길이로 표현되는 서식 지정자를 사용 (소문자 e) |
| %lg | double | %lf 와 %le 둘중에 짧은 길이로 표현되는 서식 지정자를 사용 (소문자 e) |
| %Lg | long double | %Lf 와 %Le 둘중에 짧은 길이요 표현되는 서식 지정자를 사용 (소문자 e) |
| %G | float | %f 와 %e 둘중에 짧은 길이로 표현되는 서식 지정자를 사용 (대문자 E) |
| %lG | double | %lf 와 %le 둘중에 짧은 길이로 표현되는 서식 지정자를 사용 (대문자 E) |
| %LG | long double | %Lf 와 %Le 둘중에 짧은 길이로 표현되는 서식 지정자를 사용 (대문자 E) |
'스터디 > 코딩' 카테고리의 다른 글
| [ 코딩 도장 : C ] Unit 25. 연산자 우선 순위 알아보기 : 연습문제 / 심사문제 (0) | 2024.07.06 |
|---|---|
| [ 코딩 도장 : C ] Unit 24. 비트 연산자 응용하기 : 연습문제 / 심사문제 (0) | 2024.07.06 |
| [ 코딩 도장 : C ] Unit 22. 불 자료형 사용하기 : 연습문제 / 심사문제 (0) | 2024.07.05 |
| [ 코딩 도장 : C ] Unit 21. 논리 연산자 사용하기 : 연습문제 / 심사문제 (1) | 2024.07.05 |
| [ 코딩 도장 : C ] Unit 20. 비교 연산자와 삼항 연산자 사용하기 : 연습문제 / 심사문제 (0) | 2024.07.05 |