[어소트락] c++ 자료형

타키탸키·2021년 12월 1일
0

C언어(C, C++, C#)

목록 보기
5/14
post-thumbnail

📚 자료형

  • 자료형(Data Type) 역할
    • Byte의 크기 결정
    • 정수, 실수 결정
    • 선언할 메모리 공간에 이름 부여(변수 이름)
    • 공간의 크기와 표현할 데이터에 대해 설명
int i = 0; // i는 4byte 크기의 정수 표현
  • 자료형 종류
    • 정수형 : char(1), short(2), int(4), long(4), longlong(8)
    • 실수형 : float(4), double(8)
  • 1Byte = 8bit
    • bit(비트): 0 or 1, Yes or No
    • Byte(바이트): 8bit, 알파벳과 숫자 한 개
    • KB(킬로바이트): 1024Byte, 몇개의 문단
    • MB(메가바이트): 1024KB, 1분 길이의 MP3노래
    • GB(기가바이트): 1024MB, 30분 길이의 HD영화
    • TB(테라바이트): 1024GB, 약 200편의 FHD영화
  • 컴퓨터는 1Byte로 256가지의 정수 상태 표현 가능
  • 숫자로는 0~255까지 표현 가능
  • unsigned
    • 양의 정수만 표현하고 싶을 때 정수형 앞에 붙인다
    • 예) unsigned char c = 0;

📚 정수형 자료형

  • 컴퓨터는 사용자가 입력한 값에 대해 컴퓨터가 읽을 수 있는 수로 변환하여 해석
  • 특정 값을 입력해도 컴퓨터는 다른 값으로 해석한다
  • 컴퓨터에서 1Byte는 256개의 표현 가능
    • 양수만 표현: unsigned char c = 0;
    • c는 255까지 입력이 가능
    • 양수, 음수 둘 다 표현하면 -128 ~ 0 ~ 127로 표현 가능
  • 표현할 수 있는 수의 크기는 자료형의 Byte 크기 값에 따라 달라진다
  • 최상위비트(MSB, Most Significant Bit)
    • Bit 가장 앞에 있는 숫자
    • 가장 앞에 있는 비트값에 따라 양수와 음수가 정해진다
    • 컴퓨터는 입력된 1이라는 숫자를 1의 Bit값으로 해석
      • 예) 1을 Bit 값으로 표현: '0','0','0','0','0','0','0','1'
    • 양수는 비트값 앞에 자리가 0
    • 숫자 0의 비트: '0','0','0','0','0','0','0','0'
    • 음수를 표현하는 비트값은 앞에 자리가 1
      • 숫자 -1의 비트: '1','1','1','1','1','1','1','1'
  • 1이라는 숫자를 입력하면 그 수가 Bit로 변환되어 컴퓨터에 입력
    • 컴퓨터는 그 Bit를 해석
    • 예) char c1 = 0;
      • c1 = 1;
      • 1이 입력되지 않고 비트 '0','0','0','0','0','0','0','1'를 입력
      • 컴퓨터는 Bit를 해석한 뒤 1이라는 숫자를 출력
    • 예) char c1 = 0;
      • c1 = 255;
      • 255라는 숫자가 아닌 비트 '1','1','1','1','1','1','1','1'를 입력받은 것
      • 컴퓨터는 이 숫자를 -1로 해석
  • 음수 비트 구하는 방법
    • 양수 비트 + 음수 비트 = 0
  • 보수법
    • 대응되는 양수의 비트들을 반전시킨 후, 1을 더한다
    • 2의 비트: ('0','0','0','0','0','0','1','0')
    • -2의 비트: ('1','1','1','1','1','1','1','0')
    • 2의 비트 + -2의 비트 =('0','0','0','0','0','0','0','0')
  • signed char c1 = 0;
    • 음수와 양수를 동시에 표현 할 때 사용하나 기본적으로 표현 생략

📚 실수형 자료형

  • 실수(소수)
    • 정수 데이터와 실수 데이터를 처리하는 방식이 다르다
    • Byte 크기에 따라 표현할 수 있는 수의 한계가 있다
    • 무한대로 수를 늘릴 수 있는 실수에 비해 컴퓨터는 그에 대응하여 설정할 수 있는 비트가 다 정해져 있지 않다
  • 부동소수점
    • 컴퓨터에서 실수를 표현하는 방식
    • 정수 데이터와 실수 데이터가 혼합된 경우, 둘 중 한쪽 방식을 선택해서 연산한다
    • 똑같은 값이라 하더라도 정수와 실수에 따라 표현되는 비트가 완전히 다르다
    • 예:) int a = 4 + 4.0;
      • 4와 4.0을 연산할 때, 결과값을 정수로 할지, 실수로 할지 결정해야 한다
      • int형을 사용했기 때문에 결괏값이 정수로 저장된다
      • 계산 과정 중, 실수 체계 표현에서 정수 체계 표현으로 형 변환을 한 뒤에 계산한다
  • 컴퓨터는 실수에서의 계산을 근삿값으로 표현한다
    • 올바른 계산식을 써도 소수를 정확하게 계산하지 못해 버그가 생길 수 있다
  • 실수 표현 방식은 정밀도에 의존
    • double(8Byte) 자료형이 float(4Byte)보다 더 아래의 소수점까지 정확하게 표현 가능
  • 정수는 정수끼리, 실수는 실수끼리 연산하되, 두 표현 방식의 피연산자가 연산될 경우 명시적으로 변환할 것
    • 예:) float f = 10.245f + (float)20;
  • float
    • 수 뒤에 f를 붙인다
    • 4byte 실수형
    • 안 붙일 경우, double로 인식
      • 8byte 실수형
profile
There's Only One Thing To Do: Learn All We Can

0개의 댓글