> - 자리(위치) 표기법 > - 진법 간의 변환 > - 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>