운영체제(플랫폼),정수형 자료형

Yama·2023년 11월 28일
0

어소트락 수업

목록 보기
1/55

운영체체

  1. ios(mac)
  2. 안드로이드
  3. windows(환경에서 실행이 가능한 게임을 만들것)

플랫폼

  • 컴퓨터 과학에서 프로그램의 실행되는 발판
  • 큰의미의 플랫폼
    • ios
    • 안드로이드
    • windows
      • 좁은의미 플랫폼 플스, 닌텐도 스위치, 스팀
      • 플레이스테이션, 닌텐도 스위치도 플랫폼이다.

x64(64비트), x86(32비트) 차이

  • 32비트 운영체제시절에는 4바이트의미 데이터를 주고받을떄 4바이트 초과한 데이터를 보내지 못함.
  • 64(8바이트)비트로 업그레이드되면서 전달단위 최대 단위가 8바이트로 바뀜.
  • 폰으로 개발을하면서 양쪽에다 출시할려면
    • exe파일을 두개만들어야됨.
      • ios(애플)오브젝티브 c로 개발 ,
      • 안드로이드(구글)따로 안드로이드 스튜디오로 개발
  • 유니티엔진이 많이해결.
    • win(pc)에서 c++로 유니티엔진으로 빌드하면 4가지 버전을 빌드가능하게해줌.(컴(원도우,맥)폰(ios,안드))

참고: 원도우 운영체제 개발도구는 마소가 지원해준다(비주얼 스튜디오)

솔루션

  • 프로젝트들을 묶는 단위
  • 외부 종속절뺴고는 삭제해도됨.

Main 함수

int main(void)
{

	return 0;
{
  • 프로그램의 시작, 진입 점 함수

C 언어 -> C++

  • C++는 C언어에서 개체지향과 여러가지들이 추가된 언어다.
  • C와 C++는 다른 고급언어들과 다르게 가비지 컬렉터가 존재하지않는다.
    • 이유: 최적화를 잘해야되기 떄문이다.
  • 요즘 게임들은 PC성능을 믿고 최적화를 잘안한다.(이러면 안된다.)
  • 게임은 생산성(자바 등등)이 중요한게 아니라 게임 프로그래머의 입장에서는 디테일하게 제어가능한 C++ 선호한다.

자료형 (Data Type)

  • 데이터 크기의 단위는 1 Byte = 8 bit
  • 정수 타입 - char(1) short(2), wchar_t(2), int(4), long(4), long long(8), __int64(8)
  • 실수 타입 - float(4), double(8)

1바이트 == 8비트

  • 1비트
  • 1비트는 두가지의 상태를 가진다(on, off)
    • 전기가 흐를때는 1 흐르지않을때는 0
  • 비트의 수가 증가할수록 2배씩 표현할수 있는 경우의 수 증가.
    • 8비트는 그러면 2^8승 갯수 = 256가지 표현 가능.

char 자료형

char number = 0;
  • char : 자료형
  • number : 변수 이름, 변수
  • = : 대입연산자

signed char

/*signed*/ char number = 0;
  • char : -128 ~ 0 ~ 127
  • 음의 정수를 포함한 표현가능한 범위

unsigned char

unsigned char unsigned_number = 0;
  • unsigned char : 0 ~ 255
  • 양의 정수(0포함) 포함한 표현가능한 범위.

참고 : 16진수의 10 == 16(10), 8진수의 10 == 8(10) , 2진수의 10 == 2(10)

signed 와 unsigned 차이

  • signed의 경우
    • 1바이트는 최상위비트를 1과 0인 경우가 128 + 128(가짓수)
    • 최상위 비트가 0이면 양수로 판단
    • 최상위 비트가 1이면 음수로 판단
  • unsigned의 경우
    • 최상위 비트 상관없이 양수로 계산

signed char , unsigned char 1을 더한 경우

	char number = 127;
	number = number + 1;
    
	unsigned char unsigned_number = 127;
	unsigned_number = unsigned_number + 1; 
  • 비트의 실제 메모리 상태는 똑같지만 다르게 표현된다.
  • 둘다 1더하기 전 비트 상태는 0111 111
  • 1 더한후 비트 상태는 1000 0000

중요 : 데이터의 다름이 문제가 아니라 , 같은 데이터도 값을 어떻게 분석, 해석 하느냐에 따라서 달라질 수 있다.

음수 버전의 1

  • 1111 1111 이다.
  • 이유: 0000 0001 과 더하면 1이 오버플로우되서 8비트가 0이 되기 떄문이다.
  • 음수 찾는법
  • ex) -2 음수 찾는법
    • 0000 0010 - 2(10)을 부호 반전시킨다
    • 1111 1101에 1을 더한다
    • 1111 1110 이 -2(10)의 비트 수다.

음의 정수 찾기(2의 보수법)

  1. 대응되는 양수의 비트를 반전시킨다.
  2. 반전시킨 비트에 1을 더한다.

unsigned_number = -1;

unsigned_number = -1; 
  • 255로 출력되는 이유는 : 데이터의 다름이 문제가 아니라 , 같은 데이터도 값을 어떻게 분석, 해석 하느냐에 따라서 달라질 수 있다.

signed는 기본적으로 생략됨.

  • signed char == char
  • signed short == short
  • singed int == int

short자료형

short shortNum = 0;
  • 크기 2바이트(16비트)
  • 정수타입(singend) 변수 선언
  • 표현 가능한 가짓수 == 2^16 == 65,536
  • 표현 범위: -32768 ~ 0 ~ 32767
unsigned short unsigned_short = 0;
  • 크기 2바이트(16비트)
  • 정수타입(unsingend) 변수 선언
  • 표현 가능한 가짓수 == 2^16 = 65,636
  • 표현 범위 : 0 ~ 65536

int자료형

int intNum = 0;
  • 크기 4바이트(32 비트),
  • 정수 타입
  • 표현 가능한 가짓수 == 2^32 == 4,294,967,296(43억)
  • 2,147,483,648 ~ 0 ~ 2,147,483,647(-21~21억)
unsigned int unsigned_int = 0;
  • 크기 4바이트(32 비트),
  • 정수 타입
  • 표현 가능한 가짓수 == 2^32 == 4,294,967,296
  • 표현 범위 : 0 ~ 4,294,967,295(0 ~ 43억)

형변환

char data = 44;
int iData = 56;
// int i = data + iData; 
char i = data + iData;
  • 컴퓨터가 계산할떄 다른 자료형끼리 계산을 할때는 프로그래머가 지정한 자료형으로 계산을 하거나 암묵적으로 형변환을 하여 계산한다.
  • int i = data + iData;
    • char자료형 변수인 data변수를 int자료형으로 변환해서 계산
  • char i = data + iData;
    • int자료형 변수인 iData를 char자료형으로 변환해서 계산.

강의 코드

int main(void)
{
	char number = 127;
	number = number + 1;

	// unsigned char : 0 ~ 255
	unsigned char unsigned_number = 127;
	unsigned_number = unsigned_number + 1;

	unsigned_number = -1;

	short shortNum = 0;

	unsigned short unsigned_short = 0;

	{
		char data = 44;
		int iData = 56;
		int  i = data + iData;
		//char i = data + iData;
	}
    
	return 0;
}

1차 23.11.28
2차 23.11.29
3차 23.11.30
4차 23.12.01
5차 23.12.05
6차 23.12.11
7차 23.12.17
8차 23.12.24
9차 24.01.01
10차 24.01.22

0개의 댓글