[주절주절]
코테나 면접이 있는 기회들에 대비해 CS 기초/자료구조&알고리즘 야금야금 공부 시작!
여름동안 하루에 개념 1~2개씩 정리해보려고한다. (전공기초 때 다 배운 것들인데... 크흠)
여긴 간단하게 키워드 위주로 슥슥, 따로 깊게 공부한 내용이나 단독으로 정리해두고 싶은 내용은 다른 카테고리에 정리해볼 예정이다. 작심삼일 노노! 화이팅 😋
[Today I Learned]
# 부동소수점
- 컴퓨터는 숫자를 2진법으로 저장한다. 실수(소수점이 붙어 있는 수)의 경우, 부동소수점(Floating point) 표현 방식을 통해 보다 효율적으로 숫자를 표현한다.
+ 직관적인 고정소수점 표현 방식도 있긴하지만, 사용하는 비트 수 대비 표현 가능한 수의 범위가 적고, 정밀도가 낮기 때문에 잘 사용되지 않고, 부동소수점 표현을 주로 사용한다.
- 표현 방식 : 부호 비트 / 지수부 / 가수부
- 계산 방법
① 실수의 정수부와 소수부를 각각 2진법을 이용해 표현해준다. (소수부의 경우 정수부와 달리 2를 곱해가며 계산한다.)
② 정수부에 1만 남을 때까지 소수점을 이동시켜준다. (= 정규화)
ex. 0.0101 → 1.01 * 2^-2
③ 소수점 왼쪽은 무조건 1이 되기 때문에 지수(ex.-2)와 가수(ex.01)만을 표현해주면된다. 가수는 왼쪽부터 채우고, 남은 자리는 0으로 채운다. 지수의 경우 bias(IEEE 표준 32bit 기준 127)을 더한 값을 2진수로 바꾸어 채워준다.
ㄴ 위의 예시와 같이 지수 값이 음수가 될 수 있기 때문에 bias를 사용한다.
- 위와 같은 체계를 32비트 단정도(Single-Precision)이라고 부르고, 64비트 체계를 64비트 배정도 (Double-Precision)이라고 부른다. 프로그래밍 언어에서 전자는 float, 후자는 double 타입이 해당한다.
# 빅오
: 점근적 실행시간(= n이 무한대로 향할 때 실행시간의 추이) 을 표기할 때 가장 널리 쓰이는 수학적 표기법 중 하나
ㄴ 빅오는 상한을 의미하는 것이지, 최악의 경우, 평균적인 경우와는 관계가 없는 개념이다.
- O(1) / O(log n) / O(n) / O(n log n) / ...
- 대부분의 경우 시간 복잡도와 공간 복잡도는 Trade-off 관계 → 알고리즘의 주요한 특징 중 하나
# Python 자료형
[질문 노트]
-
'컴린이 일기장 > Today I Learned' 카테고리의 다른 글
[TIL] 파이썬 정렬 함수 / Counter / defaultdict (0) | 2021.07.15 |
---|---|
[TIL] 파이썬 문자열 조작 / Deque (0) | 2021.07.14 |
[TIL] Python getattr()과 import_module (0) | 2021.04.04 |
[TIL] Python Multiprocessing (1) | 2021.03.30 |
[TIL] 서버 및 기본 환경을 세팅하자! (0) | 2021.02.26 |