데이터와 C

ro_ot ㅣ 2020. 9. 20. 00:31

C는 다양한 데이터형을 제공한다.

  • 프로그래머가 용도에 따라 적당한 것을 선택하여 사용할 수 있게 하기 위해서 이다.
  • 기본 데이터형은 정수형과 부동소수점형으로 나뉜다. 

데이터 변수와 상수

  1. 상수 : 사용되기  전에 값이 미리 정해지며, 프로그램이 실행되는 동안 값이 변하지 않고 유지된다.

  2. 변수 : 프로그램이 실행되는 동안 값이 변하거나 값이 대입되는 데이터

정수

  1. 소수부가 없는 수이다.
  2. 2진수 형태로 저장된다.

부동소수점 수

  1. 정수와 정수 사이에 들어 있는 수들을 포함한다.
  2. 어떤 값에 소수점을 붙이면 부동소수점 값이 된다.

정수와 부동소수점의 차이점

  • 정수는 소수부가 없다. 부동소수점 수는 소수부를 가질 수 있다.
  • 부동소수점 수는 정수보다 훨씬 큰 범위의 수를 나타낼 수 있다.
  • 일부 산술 연산에서, 부동소수점 수는 정밀도 손실을 입을 수 있다.
  • 부동소수점 값들은 흔히 실제 값들의 근사값이다.

비트, 바이트, 워드의 간단한 설명

더보기

비트, 바이트, 워드 = 컴퓨터의 메모리 단위를 표시하는 데 사용된다.

 

1. 비트

    - 메모리의 가장 작은 단위이다.

    - 0 또는 1 두 값 중 하나만 저장할 수 있다.

 

2. 바이트

    - 컴퓨터 메모리의 통상적인 단위다.

    - 거의 모든 컴퓨터에서 1바이트는 8비트다.

    - 기억 용량을 말할 때 사용하는 표준 정의다.

    - C언어는 다른 정의를 가지고 있다.

 

3. 워드

    - 특정 컴퓨터를 설계할 때 정해지는 고유 메모리 단위이다.

    - 예를 들어, 마이크로컴퓨터에서 워드는 8비트이다.

    - 퍼스널 컴퓨터들은 16비트 워드, 32비트 워드, 그리고 64비트까지 발전해 왔다.

    - 더 큰 워드 크기는 데이터를 더 빠르게 옮길 수 있고 더 많은 메모리에 접근할 수 있다.

 

정수형은 두 가지 특징을 가지고 구별한다.

  1. 데이터형에 할당되는 기억 공간의 크기

  2. 부호의 유무

가장 작은 정수형은, 시스템에 따라 부호가 있을 수도 없을 수도 있는 Char형이다.

원하는 것을 명시적으로 지정하기 위해 signed char와 unsigned char를 사용할 수 있다.

  • 이 방법은 char형에 작은 정수들을 저장할 때 사용한다.

그 밖의 정수형으로 short, int, long, long long형이 있다.

이들은 크기 순서대로 정렬한 부호 있는 데이터 형이다.

부호 없는 데이터형을 나타내기 위해 키워드 unsigned를 붙여서 unsigned short, unsigned int처럼 사용한다.

 

다음은, _Bool형이 있다.

_Bool형이란 true, false를 각각 나타내는 값 0과 1만을 저장할 수 있는 부호 없는 데이터형이다.

 

부동소수점형은 세 가지가 있다.

float형, double형, long double형 있다.

이들도 크기 순서대로 정렬하였다.

 

일부 컴파일러는 부동소수점형에 키워드 _Complex와 _Imaginary를 결합하여 복소수형과 허수형을 사용할 수 있도록 지원한다.

 

C의 기본 데이터형

    1. int형

        - 부호 있는 정수이다.

        - 양수, 음수, 0이 될 수 있다.

 

    2. int형 변수의 선언

        - int형 변수를 위한 기억 공간을 할당하고 각각의 변수명과 연결한다.      

int erns;
int hogs, cows, goats;

        - 위와 같은 선언들은 변수는 만들지만 값은 제공하지 않는다.

        - 변수의 값을 얻는 방법은, 

                1. 대입

                2. 함수로 부터(scanf( ) 같은) 값 리턴

   

    3. 변수의 초기화

        - 변수를 초기화 한다는 것은 변수에 초기값을 대입하는 것이다.

        - 변수를 저장하기 위한 기억 공간을 할당하고, 거기에 이름을 연결하여, 각 변수에 초기값을 대입한다.

 

정수는 10진수, 8진수, 16진수 표기로 나타낼 수 있다.

C에서는 특별한 접두사들이 사용자가 어느 진수를 지정한 것인지 알려준다.

0으로 시작하면 8진수, 0x나  0X로 시작하면 16진수다.

예를 들어, 32, 040, 0x20은 같은 값을 10진수, 8진수, 16진수로 나타낸 것이다.

 

접미사  l 또는 L은 long형 값을 나타내고 ll 또는 LL은 long long형 값을 나타낸다.

 

문자 상수는 'Q', '8', '$'와 같이 작은따옴표로 문자의 좌우를 감싸서 나타낸다.

이스케이프 시퀀스는 출력되지 않는 어떤 문자들을 나타낸다.

'\007'과 같은 형식을 사용하여 문자를 ASCII코드로 나타낼 수 있다.

 

부동소수점 수를 표현하는 방식은 다음과 같다.

  1. 93.912  = 소수점을 사용

  2. 7.38E10 = 지수 표기법

  3. 0xa.1fp10 = 16진수와 2의 거듭제곱을 사용하는 제 3의 지수표기

printf( ) 함수는 변환 지정자를 사용하여 다양한 데이터형의 값들을 출력할 수 있다.

%d, %f와 같이, 포맷 지정자는 퍼센트 기호와 데이터형을 나타내는 문자로 이루어져 있다.

접두사도 함께 출력하려면 %#o, %#x, %#X 처럼 사용하면 된다.

 

'Study > C' 카테고리의 다른 글

문자열과 입출력 포맷  (0) 2020.09.27