컴공댕이 공부일지
[실전 알고리즘] 0x01강 - 🔎 정수 및 실수 자료형의 특징 / 2의 보수법 본문
[ 정수 자료형 ]
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
'CS > 알고리즘' 카테고리의 다른 글
[실전 알고리즘] 0x0A강 | 깊이 우선 탐색 (DFS) - 스택으로 DFS 구현하기 / DFS와 BFS의 차이? (0) | 2025.02.13 |
---|---|
[실전 알고리즘] 0x09강 | 너비 우선 탐색 (BFS) - 응용 문제 유형별로 풀어보기 📝 (0) | 2025.02.13 |
[ 동적계획법 ] top-down, bottom up (상담시간 퇴사 문제) (0) | 2024.04.02 |
[ 동적프로그래밍 ] 개념 (피보나치, 외발뛰기) (0) | 2024.04.02 |
[ 탐욕법 ] 그리디 알고리즘의 사용 조건 및 정당성 증명, 예시 문제 풀이 (1) | 2024.03.28 |