> - 자리(위치) 표기법
> - 진법 간의 변환
> - 2진수와 8진수, 16진수의 관계
> - 컴퓨팅에서 2의 제곱수의 중요성
<br>
#### Numbers
= 값(value)의 표현, 특정 수의 연산들을 이러한 값에 일관되게 적용 가능
실수, 무리수, 유리수, 분수, 자연수, 음수, 0, 양수, 복소수 등
<br>
## 자리(위치) 표기법
수 체계의 진법(base)은 사용되는 숫자의 개수를 결정함 e.g. base2[0,1], base8[0~7]
![[Positional_Notation.png|300]]
R-진법의 수 체계에서 어떤 수가 n개의 숫자를 가질 위와 같이 표현됨
e.g. 10진수 943 = 9X10^2 + 4X10^1 + 3X10^0
→ 다양한 진법은 hashing, 암호화에 주로 사용됨
<br>
## 2의 제곱수의 중요성 ✨
모든 종류의 데이터는 결국 이진수(binary digits) 0과 1로 컴퓨터에 저장됨(컴퓨터 = binary machine)
→ 0(low-voltage signal) 혹은 1(high-voltage signal)
→ 전자기적인 신호로 전송하기 쉬움
8진수, 16진수를 사용하면 2진수 ~ 10진수 변환이 쉬워짐
- 2^7은 128 (표준 아스키 코드의 모든 글자 수)
- 2^10은 1,024
- 2^16은 65,536 (`unsigned short`자료형의 상한값)
<br>
## 다양한 진법에서의 연산
carry와 borrow 발생
<br>
#### 진법 간의 변환
- **다른 진법 → 10진법**
각 자릿수에 `base^n-1 ... base^0` 까지 곱하기
e.g. 13진법 943은 9X13^2 + 4X13^1 + 3X13^0 = 1576으로 표현 가능
- **10진법 -> 다른 진법**
10진수를 base로 나눈 뒤 몫(quotient)은 가장 오른쪽 값부터 채우고, 나머지(remainder)는 몫이 0이 될때까지 base로 다시 나눈다
- **2진수(binary) ↔ 8진수(octal)**
숫자를 3개씩 자르는 게 핵심
e.g. 8진수 754 = 2진수 111 101 100, 8진수 126 = 2진수 1 010 110
- **2진수(binary) ↔ 16진수(hexadecimal)**
숫자를 4개씩 자르는 게 핵심
e.g. 16진수 56 = 2진수 101 0110, 16진수 ABC = 2진수 1010 1011 1100 = 8진수 5274
<br>
## Bits와 Bytes
- 각 storage unit은 **binary digit = bit** 라고 불림
- 8개의 bit를 **byte**로 묶을 수 있음 (물리적인 장치의 저장단위)
- byte은 연산 단위는 **word**로 묶을 수 있음
→ 현대의 컴퓨터는 32-bit machine 혹은 64-bit machine임
<br>
<br>
<br>
<br>