컴공댕이 공부일지

[실전 알고리즘] 0x01강 - 🔎 정수 및 실수 자료형의 특징 / 2의 보수법 본문

CS/알고리즘

[실전 알고리즘] 0x01강 - 🔎 정수 및 실수 자료형의 특징 / 2의 보수법

은솜솜솜 2025. 1. 15. 17:57
728x90

[ 정수 자료형 ]

short (2byte)
int (4byte) - 최댓값 21억
long long (8byte) - 최대 19자리 (2^63-1)

[ 실수 자료형 ]

float (4byte) : 1 + 8 + 32bit
double (8byte)  : 1 + 11 + 52bit

부호 + 지수(exponent) + 유효숫자(fraction) 필드로 실수를 저장함
ex) -6.75의 이진수 표현
부호 : 1
정수 : 6 = 110
소수 : .75 = 0.5 + 0.25 = .11
-> 110.11 -> 1.1011 * 2^2

 


 

[ ⭐ 실수 자료형의 특징 ]

1. 실수의 저장/연산 과정에서 반드시 오차가 발생할 수 밖에 없다..

컴퓨터는 실수를 근사값으로 저장함 !

=> 실수가 필요하다면 가능한 오차 범위가 훨씬 더 작은 double을 사용할 것

- float : 유효숫자 6자리 -> 상대오차 10^-6까지 안전

- double : 유효숫자 15자리 -> 상대오차 10^-15까지 안전.

더블이 플롯보다 더 많은 비트를 사용해 수를 표현하므로 더 정밀한 값을 저장해 오차가 상대적으로 작음 !

 


2. double에 long long 범위의 정수를 함부로 담으면 X

더블 유효숫자는 15자리 < 롱롱은 최대 19자리. 오차가 있어도 알아차리질 못하고 근사값으로 똑같이 저장해버려.. ! (아래의 경우)

 

대신 int 범위 정수는 double에 담아도 됨 :)


3. 실수 비교 시, 등호 사용 X

1번에서 봤듯이 실수 계산에는 오차가 필히 생기므로..

위의 그림 예시처럼, 둘의 차가 매우 작은값 (예시. 10^-12) 이하면 동일하다~ 이런식으로 취급하기 !

 



+ [ 2's complement ]

컴퓨터에서 음수를 표현하는 방법 !
최상위 비트 (가장 왼쪽 비트)는 부호 비트로 사용되어 0이면 양수, 1이면 음수를 나타낸다.

 

음수를 2의 보수로 표현하는 방법

1. 양수의 이진수를 구함
2. 비트 플립 (0<->1)
3. +1

 

ex) -5의 이진수 표현:

step 1. 5의 이진수: 00000101
step 2. 비트 반전: 11111010
step 3. 1 더하기: 11111011

범위
signed char :  -128 ~ 127
unsigned char :  0 ~ 255 (부호비트 없이 8비트를 모두 숫자표현에 사용함)

2의 보수 방식으로 음수를 표현하면, 부호 비트를 활용해 음/양수를 간단히 처리할 수 있고, 정수 계산을 간편하게 해줌 ! :)

 



디논설에서 배운 내용이 좀좀따리 쓰여서 신기하다 ... 배울땐 이거 어따써먹나 싶었는뎋

 

(출처) [실전 알고리즘] 0x01강 - 기초 코드 작성 요령 I

 

[실전 알고리즘] 0x01강 - 기초 코드 작성 요령 I

안녕하세요, 바킹독입니다. 이번 단원에서는 기초 코드 작성 요령을 익혀보려고 합니다. 목차를 보셨으면 알겠지만 기초 코드 작성 요령이 두 강으로 나눠져있는데 앞으로 코드를 잘 짜기 위해

blog.encrypted.gg

 

 

728x90
Comments