문제1 >
입력 받은 정수 값의 부호를 바꿔서 출력하는 프로그램을 작성해보자. 예를 들어 -3 입력시, 3 출력, 5 입력시 -5 출력. 단, 반드시 이번 Chapter에서 소개한 비트 연산자를 이용해서 구현해야 한다.
문제1해설 >
/*
* 제목 : 문제04-4-1
* 쪽수 : p.100
* 수정날짜 : 080523
* 기능 : 비트 연산자 활용해서 정수 값의 부호를 바꿔서 출력하는 프로그램
*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int a,b;
b = 0;
printf("정수 값을 입력하세요 : ");
scanf(" %d", &a);
b = ~a;
b += 1;
printf("입력된 정수 : %d\n부호 바꾼 결과 : %d\n", a, b);
return 0;
}
문제2 >
다음 연산의 결과를 출력하는 프로그램을 작성해보자. 단, *연산자와 /연산자를 사용하지 않고 구현해야한다.
3 x 8 % 4
반드시 곱셈과 나눗셈에 대응하는 비트 연산자를 이용하여 해결해야 한다.
문제2해설>
LeftShift 와 RightShift를 사용하여 해결한다.
/*
* 제목 : 문제04-4-2
* 쪽수 : p.100
* 수정날짜 : 080523
* 기능 : 비트 연산자 활용해서 곱셈, 나눗셈 식 계산하는 프로그램
*/
#include <stdio.h>
int main(void)
{
int num = 3;
num = num << 3;
printf("x8한 결과 : %d\n", num); //24
num = num >> 2;
printf("%4한 결과 : %d\n", num); //6
return 0;
}
'c' 카테고리의 다른 글
[c언어/열혈 c프로그래밍] 비트 연산자 (LeftShift, RightShift) (0) | 2023.08.05 |
---|---|
[c언어/열혈 c프로그래밍] 음의 정수 크기 확인하기 (0) | 2023.08.05 |
[c언어/열혈 c프로그래밍] p.89 문제 04-3 음의 정수 표현하기 (0) | 2023.08.05 |
[c언어/열혈 c프로그래밍] p.83 문제 04-2 <데이터 표현의 이해> (0) | 2023.08.03 |
[c언어/열혈 c프로그래밍] p.82 문제 04-1 <진법의 이해> (0) | 2023.08.03 |