안선생의 개발 블로그
C++ 1. 자료형 본문
정수형 : char(1), short(2), int(4), long(4), long long(8)
실수형 : float(4), double(8)
1Byte = 8bit = 2의 8승 = 256가지의 상태를 표현가능
2의 10승 = 1024Byte = 1KByte (B는 byte b는 bit)
1024kByte = 1MByte
양수 0~255까지 양수만 표현하고 싶을 때 ex)unsigned char i = 0;
i = 255 // i = -1
i = -1 // i = 255
양수 음수 둘다 표현 -128~127 ex)char i = 0;
i = 255; // i = -1 더해서 0이 되게하면됨 1은 0000 0001 이고 0을 만들려면 1111 1111을 더해주면 0이됨 ,정수 2진법에서 다 반전시킨 다음에 +1을 더하면 음수가 됨 ex) 0000 0001 반전 1111 1110 에다 1을 더하면 1111 1111 -> 255 - > -1 즉 음의 정수 찾는법(2의 보수법) 대응되는 양수의 부호를 반전 후, 1을 더한다.
i = 254; // i = -2
Int 범위 -2,147,483,648~ 2,147,483,647
1bit가 최소단위 0,1로 구성
자료형 예) int i = 0; int = 자료형, i = 변수, 0 = 변수값 (변수 명은 마음대로 정할 수 있다.)
자료형 역할 : Byte의 크기 결정, 정수인지 실수인지를 결정 자료형은 영어로 Data Type 자료형 그 자체로써는 어떠한 실체도 없다. 자료형은 내가 선언할 메모리 공간에 이름을 부여하고(변수이름) 그 공간이 얼마의 크기가 되고 어떠한 데이터를 표현할 것인지 설명해주는 역할이다. 예) int i = 0; <- i는 4Byte의 크기를 가지고 정수를 표현한다.
실수형
정수데이터와 실수데이터를 구분 하는 이유는 정수타입데이터와 실수타입데이터를 처리하는 방식 자체가 완전히 다르다
우리가 표현할 수 있는 수는 Byte크기에 따라 한계가 있다. 그러나 실수는 무한대로 수를 늘릴 수 있다. 컴퓨터는 무한히 많은 실수들의 각각의 비트가 설정되어 있지않다. 컴퓨터에서 실수를 표현하는 방식은 "부동소수점"이라는 표현체계를 따르고 있다. 정수와 실수데이터가 혼합되어 연산할 때 둘 중 한쪽 방식을 컴퓨터에게 선택시켜줘야한다. 똑같은 값이라 하더라도 정수와 실수에 따라 표현되는 비트가 완전히 다르다. 예) int a = 4 + 4.0; <- 4와 4.0을 연산시킬 때 결과값을 정수로 할 것인지 실수로 할 것인지를 결정해줘야 한다. int자료형을 썻으므로 정수로 결과를 저장한다고 선택해줬다. 계산과정 속에서 4+4.0이라는 계산을 연산하기 위해 실수체계표현에서 정수체계표현으로 "형변환"을 한 뒤에 계산했다. 컴퓨터는 실수에서의 계산을 특정 숫자를 정확하게 표현하는게 아닌, "근삿값"으로 표현한다. 그렇기 때문에 올바른 계산식을 썻는데도 소수를 정확하게 계산하지 못해 버그가 생길 수 있다. 정리) 정수표현 방식과 실수표현 방식은 다르다. 실수표현 방식은 정밀도에 의존한다. 따라서 double(8Byte) 자료형이 float(4Byte) 보다 더 아래의 소수점까지 정확하게 표현이 가능하다. 정수는 정수끼리, 실수는 실수끼리 연산하되, 두 표현방식의 피 연산자가 연산될 경우 명시적으로 변환하자.
부동소수점
출처 : https://www.youtube.com/c/AssortRockGameAcademy
'C++' 카테고리의 다른 글
C++ 함수 (0) | 2022.05.27 |
---|---|
C++ 5. 변수 (0) | 2022.05.26 |
C++ 4. define/ 비트 연산자 (0) | 2022.05.25 |
C++ 3. 조건문(if,switch),삼항 연산자 (0) | 2022.05.24 |
C++ 2. 연산자 (0) | 2022.05.23 |