CodeUp C언어 기초 100제_1012번

2023. 11. 30. 16:29C언어 기초 100제

728x90
반응형

https://codeup.kr/problem.php?id=1012

 

[기초-입출력] 실수 1개 입력받아 그대로 출력하기(설명)

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용

codeup.kr

 
문제 : 실수형(float)로 변수를 선언하고 그 변수에 실수값을 저장한 후 저장되어 있는 실수값을 출력하시오.
 
C언어에서 실수란 소수부나 지수가 있는 수를 말한다.

실수형 타입 할당되는 메모리 크기 데이터의 표현범위
float 4 byte (3.4* 10의 -38승) ~ (3.4*10의 38승)
double 8 byte (1.7*10의 -308승) ~ (1.7*10의 308승)
long double - (1.7*10의 -308승) ~ (1.7*10의 308승)

 
Q. byte란?
컴퓨터의 기억장치의 크기를 나타내는 단위로 자주 쓰이며, 많은 프로그래밍 언어에서 정수형에 속하는 자료형이기도 하다. 바이트의 실질적 의미는 ASCII 문자 하나를 나타낼 수 있다는 것이다.
 
Q. double과 long double의 차이는?
세 데이터형의 표현범위가 float <= double <= long double 순이다.
일반적으로 float = 4byte, double = 8byte를 따르나, long double 이 8, 10, 16바이트 또는 그 밖의 어떤 크기가 될지는 컴파일러가 결정할 문제이므로, 직접 사용하고 있는 컴파일러에서 sizeof 연산자 등으로 확인해 보아야 한다.
 
사용중인 컴퓨터의 Dev C++의 경우,
 

 
다음과 같이 나타난다.
 

실수형 타입 지수의 길이 가수의 길이 유효 자릿수
float 8 bit 23 bit 소수 부분 6자리까지 오차없이 표현할 수 있다.
double 11 bit 52 bit 소수 부분 15자리까지 오차없이 표현할 수 있다.

 
Q. bit란?
bit는 하나의 bit는 0이나 1의 값을 가질 수 있고, 각각은 참, 거짓 혹은 서로 배타적인 상태를 나타낸다.
byte는 bit가 여러 개 모인 것으로, 원래는 크기가 명확히 정해져 있지 않았지만, 현재는 대개 1옥텟(bit*8)인 8bit가 1byte이다.



float 기준 8 × 4 byte = 32 bit
부호, 지수, 가수의 메모리 구성은 위와 같다.
 

 
소수점 6자리까지 표현할 수 있는 float 형태로 실수형 변수 a를 선언한다.
고정 소수점으로 소수 부분 6자리까지 표현할 수 있는 %f를 scanf()함수로 입력받아 값을 a에 저장한다.
a의 값을 출력한다.
 
Q. 소수점은 꼭 6자리를 모두 채워야 하는가?
 

 
소수점 6자리를 모두 채우지 않으면 남은 자리수에 0이 채워지는 것을 볼 수 있다.
그렇다면 입력값인 3.14만 나타낼 순 없을까?
 

 
형식 지정자 %f의 %와 f사이에 .n(n은 소수점 이하의 길이)을 입력하면 조절 가능하다.

728x90
반응형