프로그래밍/C,C++

[C/C++] 자료형, byte, 아스키코드

gameObject 2023. 6. 2. 09:20
728x90

자료형 개념

자료형(Data Type)은 데이터를 표현하는 방법을 의미한다.

이러한 자료형은 미리 정의되어서 우리는 자료형의 이름을 이용하여 쉽게 메모리 공간을 할당할 수 있다.

 

정수형

  • Char(1 byte)
  • short(2byte)
  • int(4byte)
  • long(windows- 4byte, Mac - 8byte)
  • longlong(8byte)

실수형

  • float (4byte)
  • double(8byte)
  • longdouble(8byte이상)

* 책이나 블로그에 나와있는 자료형의 크기 말고,

  내 컴퓨터에 맞는 자료형의 크기를 직접 알아 보고싶은 경우 sizeof()라는 함수를 사용한다.

  (window와 mac은 다른부분이 있다.)

#include <iostream>
#include <stdio.h> 

//sizeof()함수로 자료형 크기 알아보기
int main(){
    
    //정수형 데이터타입
    char charValue = 'A'; //문자 하나를 저장하기 위한 데이터 타입
    short shortValue = 10; //int 보다 작은 수를 저장하기 위한 데이터 타입
    int intValue = 100; //가장 만만한 수를 저장하기 위한 데이터 타입
    long longValue = 200; // int가 커져서 이제 잘 안쓰는 데이터 타입
    long long longLongValue = 1000; //int보다 큰 수를 저장하기 위한 데이터 타입

    //실수형 데이터타입
    float floatValue = 10.1; //가장 만만한 실수를 저장하기 위한 데이터 타입
    double doubleValue = 100.1; //float보다 큰 실수를 저장하기 위한 데이터 타입
    long double longDoubleValue = 200.1; //double보다 큰 실수를 저장하기 위한 데이터 타입

    printf("char의 크기 %d \n", sizeof(charValue));
    printf("short의 크기 %d \n", sizeof(shortValue));
    printf("int의 크기 %d \n", sizeof(intValue));
    printf("long의 크기 %d \n", sizeof(longValue));
    printf("longlong의 크기 %d \n\n", sizeof(longLongValue));

    printf("float의 크기 %d \n", sizeof(floatValue));
    printf("double의 크기 %d \n", sizeof(doubleValue));
    printf("long double의 크기 %d \n", sizeof(longDoubleValue));
}

바이트(byte)

byte = 8bit이다.

>> kb(1024byte) _ 키로바이트

>> mb(1024 kbyte) _ 메가바이트

>> gb(1024 mbyte) _ 기가바이트

>> tb(1024 gbyte) _ 테라바이트

 

* 컴퓨터의 프로그래머 계산기를 들어가면, 해당 내용들을 쉽게 계산할 수 있다.

* 255등 프로그래머들이 외우게 되는 숫자들이 있다.(아직은 모르겠지만? 많이 쓰이는 숫자가 있는듯 하다.)

* 방치형 클리커류 게임을 만들고 싶을경우 int를 쓰면? 이제는 안된다는것을 알수있다.(byte가 작기때문에)

* 게임에서 콘솔을 타겟으로 할때는, 데이터 타입에 맞게 딱 메모리를 낭비하지 않도록 최적화 할 필요가 있다.

 

아스키코드(ASCII Code)

컴퓨터는 문자와 숫자를 구분하지 않고 컴퓨터만의 언어로 이해한다.

따라서 많은 사람들이 컴퓨터가 알아들을 수 있도록 개인의 규칙을 정해서 쓴다면, 소통하는것에 오류가 생길것이다.

따라서 모든 사람이 공통적으로 쓸수있는 표준규격, 아스키(ASCII: American Standard Code for information interchange)가 만들어졌다. 알파벳에 기초를 둔 문자 인코딩 방법이다.

 

아래는 관련 표다.

728x90