c언어-(자료형 실수형, 문자형)

2022. 3. 15. 18:58C언어

728x90

2. 실수형

실수(Real Number)란 소수점 이하를 가지는 수이며 정수보다는 한 단계 더 확장된 범위를 포괄한다. 

3.14 나 10.31과 같이 소수점과 소수 이하의 소수부가 있다. 실수형 타입은 이런 실수를 저장하는 타입이며

C에서는 크기별로 다음 세 가지 종류가 제공된다. 실수 타입은 모두 부호를 가지고 있다. (unsigned 존재 x)

타입 바이트 수 범위 유효자리수(십진)
float 4 3.4*10^38~3.4*10^38 7
double 8 1.7*10^-308~1.7*10^308 15
long double 10~16 1.2*10^-4932~3.4*4932 19

float는 4바이트의 작은 실수형이며 double은 8바이트의 큰 실수형이다. 실수형의 값을 기억할 변수가 필요하다면

double d; 형식으로 선언하면된다. 

long double형은 c언어 표준에는 있지만 비주얼 c++ 6.0, 7.0에는 지원하지 않으며 double형과 동일하게 취급한다. 

gcc는 12바이트 크기의 long double형을 지원한다.  정수와 마찬가지로 실수도 수학에서는 실수와는 달리 무한대의 크기와 정밀도를 제공하지는 않으며 할당된 메모리 크기만큼의 크기와 정밀도만 표현한다. 

 

실수의 소수점을 조절하고 싶을때는 서식문자%뒤에 .(몇자리수까지 출력)

ex) %.9lf 이런식으로 사용할 수 있다. 

 

https://www.acmicpc.net/problem/1008

 

1008번: A/B

두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

예시 문제

 

3. 문자

문자형이란 문자 하나를 표현하는 자료형이다. 컴퓨터는 원래 숫자밖에 모르기 때문에 문자도 숫자로 기억한다. 이때 어떤 숫자와 어떤 문자를 대응시키는가에 따라 여러가지 인코딩 방식이 있는데 통상 아스키 코드를 많이 사용한다. 아스키코드는 0~255 사이의 숫자에 문자를 대응시켜 놓았는데 이 표를 보면 대문자 A는 문자코드 65로 소문자 a는 97로 표현 가능하며 숫자 1은 49로 표현이 가능하다. 

 

 

==> 저는 그냥 a == 97 A==65 이 두개만 외웠습니다. 

0~255(256) 개인 이유 서로 다른 문자를 기억하기 위해서는 1바이트만 있으면 되기 때문이다. 문자형 타입은 char인데 정수형과 마찬가지로 char형도 앞에 수식어를 붙일 수 있다. 길이는 1바이트로 고정되어 있으므로 long이나 short 같은 크기에 대한 수식어는 붙일 수 없고, 부호의 여부에 따라 usigned를 붙일 수 있다. 

==> 부호에 따라서 MSB를 부호 비트로 사용이 가능 대신 표현가능 범위는 반으로 줄어듦

 

타입 크기(바이트) 부호 범위
(signed) char 1 있음 -128~127
unsigned char 1 없음 0~255

char을 사용해서 변수를 선언할 때는 

char ch;

ch='A'

이렇게 작은 따운표로 감싸준다.  

#include <stdio.h>
int main(){
	char ch='A';
    printf("ch의 문자:%c A의 정수(아스키값):%d",ch,ch);
    return 0;
}

위에 코드를 실행시켜보고

밑에 문제를 풀어봅니다.

당연히 위에 코드를 다 지우고 다시 처음부터 코딩하고 모르겠으면 노트에 적어보면서 익혀봅니다. 

 

https://www.acmicpc.net/problem/11654

 

11654번: 아스키 코드

알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'C언어' 카테고리의 다른 글

c언어-(if 조건문)  (0) 2022.03.17
c언어-(문자열 string, 배열)  (0) 2022.03.17
c언어 -(자료형)  (0) 2022.03.15
c언어 - (변수)  (0) 2022.03.10
c언어 기본코드 (hello 출력 및 코드설명)  (0) 2022.03.10