티스토리 뷰
★ 필요한 부분만 골라서 공부하기 ! 꼭 순서가 이어지지는 않습니다.
Ⅰ. 데이터 단위(Data Unit)
* 비트(Bit) : 정보 표현의 최소 단위.
# 0, 1 / On, Off / True, False 처럼 두 가지 상태만을 표현한다.
* Nibble : 1 nibble 은 4 bit 와 같다. 또한 16진수의 1자리 수이다.
# 16진수의 1자리 수는 16가지의 상태를 표현하는데
4bit 는 16가지의 상태를 표현할 수 있기 때문이다.
* Byte : 일정한 개수의 비트로 이루어진 비트열을 뜻한다
# 기본적으로 1 byte = 8 bit = 2 nibble
# 문자 하나를 나타내는 최소 단위.
Ⅱ. 수 체계(Number System)
* 진법 - 수를 셀 때 자리수가 올라가는 단위를 기준으로 셈법의 총칭
# 예) 2진법은 0, 1 이후 10 으로 자리 수 증가 : 0 / 1 / 10 / 11 / 100 ...
# 예) 10진법은 0~9 이후 10으로 자리 수 증가 : 0 / 1 / ... / 9 / 10 / 11
* 일상 속 다양한 진법 종류
# 10진법 : 일상적인 숫자 체계
# 12진법 : 달력
# 60진법 : 시간(초, 분)
* 대표적인 컴퓨터 진법
# 2진법 : 컴퓨터에서 사용되는 디지털 숫자 체계 (보편적 사용)
# 8진법 : 2진법을 축약해서 표현하기 위해 사용 (현재 거의 사용 X)
# 16진법 : 2진법을 축약해서 표현하기 위해 사용
* 계산법
# 10진법 : 365 = 3 X 102 + 6 X 101 + 6 X 100
# 2진법 -> 10진법 : 1111(2) = 1 X 23 + 1 X 22 + 1 X 21 + 1 X 20 = 15
# 16진법 -> 10진법 : BC1(16) = B X 162 + C X 161 + 1 X 160 = 3072+192+8 = 3272
※ 16진법의 수 체계 : 0~9, 10 = A, 11 = b, 12 = C, 13 = D, 14 = E, 15 = F
* 음수는 어떻게 표현할까? -> 3가지 방법을 사용한다.
# 2진수에서 음수는 비트의 가장 왼쪽 1비트를 이용해서 부호를 표현한다 (0: 양수, 1: 음수)
→ 부호 비트
1. 가장 왼쪽에 있는 비트를 부호비트라 한다. 0011(2) = 양수 3 , 1011(2) = 음수 3
→ 1의 보수
1. 부호 비트를 제외한 나머지 비트를 반전한 값으로 표현 한다. 0011(2) = 양수 3 , 1100(2) = 음수 3
→ 2의 보수
1. 부호 비트를 제외한 나머지 비트를 반전하고 1을 더한 값으로 표현한다. 0011(2) = 양수 3 , 1101(2) = 음수 3
2. 2의 보수 방식을 가장 많이 사용한다.
Why ? 1의 보수는 0이 +0, -0이 존재하지만 2의 보수는 0의 값이 1개로 정해져 있기 때문이다로 생각하자.
Ⅲ. 비트에 따른 정수(Int)의 범위(Range)
* 운영체제가 몇 비트를 지원하는가에 따라서 사용가능한 정수의 범위는 달라진다.
# Int는 일반적인 양의 정수와 음의 정수를 포함하며, UInt는 양의 정수만을 포함한다는 차이가 있음을 알아두자.
< Example >
타입 |
최소 값 |
최대 값 |
Int8 |
- 128 |
127 |
UInt8 |
0 |
255 |
Int16 |
-32768 |
32767 |
UInt16 |
0 |
65535 |
Int32 |
-2147483648 |
2147483647 |
UInt32 |
0 |
4294967295 |
# Int8의 8이 나타낼 수 있는 값은 28 가지 수이다. 따라서 28 = 256 이니, 0을 포함하여 양수는 127까지, 음수는 -128까지 간다.
# Int8이라고 해서 256이라고 생각하면 안되는 것을 주의하자.
'Programming > Basic' 카테고리의 다른 글
0. 준비운동 : 스레드(Thread) - Basic (0) | 2018.09.09 |
---|---|
0. 준비운동 : 객체 지향 프로그래밍(OOP, Object-Oriented Programming) (2) | 2018.07.04 |
0. 준비운동 : 기술적인 빚(Technical debt) (0) | 2018.05.23 |
0. 준비운동 : Git (Distributed Version Control System) (2) | 2018.05.13 |
0. 준비운동 : 컴퓨터 개론2 (Data Size, Bitwise Operation, Program vs Process) (2) | 2018.05.12 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- tca
- 프로그래밍
- var
- commit
- swiftUI
- array
- ios
- inswag
- GCD
- 깃허브
- iOS개발스쿨
- Dictionary
- Operator
- fastcampus
- 컨버전
- 열거형
- 개발스쿨
- lifecycle
- fallthrough
- 딕셔너리
- Swift
- 스위프트
- OOP
- ARC
- 패스트캠퍼스
- 튜플
- 타입
- function
- 리터럴
- 패캠
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함