더보기
기수법 진수변환 보수 고정소수점 부동소수점 아스키코드 유니코드
01장 CPU
02장 운영체제 - 프로세스와 스레드
03장 운영체제 - 메모리
04장 프로그래밍 언어, 컴파일러
05장 변수, 정수, 실수, 문자열
06장 함수
07장 객체지향
08장 클래스
09장 자료구조 1
10장 자료구조 2
11장 알고리즘
12장 네트워크
13장 데이터베이스
1. 변수
- 변수 : 데이터를 저장할 수 있는 메모리 공간
- 저장되는 데이터 : 숫자, 문자, 객체(class), 메모리 주소(포인터 변수), 함수
💡 이번 페이지는 데이터들을 변수에 어떻게 저장하는지에 대해서 설명합니다.
2. 정수
2-1. 기수법
- 기수법 : 수를 시각적으로 나타내는 방법
- 기수법의 종류
- 10진수 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
- 2진수 : 0, 1
- 16진수 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
2-2. 진수 변환
1) 2진수 → 10진수
- 11001이라는 2진수를 10진수로 변환하는 예시
- 2진수의 각 자릿수 제곱을 계산한 숫자를 전부 더한다.
- 정답 : 16 + 8 + 1 = 25
2) 10진수 → 2진수
2-3. 보수
1) 보수
- n진수에는 n-1의 보수, n의 보수가 존재
- 10진수 n의 9의 보수 : n의 모든 자릿수를 9으로 만들 수 있는 숫자
- 10진수 n의 10의 보수 : 거기에 1을 더한 것
- 예시
- 10진수 26의 9의 보수 : 73
- 10진수 26의 10의 보수 : 74
- 2진수 1010의 1의 보수 : 0101
- 2진수 1010의 2의 보수 : 0110
2) 보수를 사용하는 이유
- 컴퓨터가 뺄셈 연산을 간단하게 하기 위함
- 음수를 2진수 2의 보수로 표현하고, 보수를 사용해서 뺄셈을 덧셈 연산으로 처리한다.
3. 실수
3-1. 실수의 진수 변환
- 10진수 실수 → 2진수 실수
- 7.75 = 4 + 2 + 1 + 0.5 + 0.25 = 111.11
3-2. 고정 소수점 (fixed-point)
- 특징 : 비효율적이지만 계산하기 쉬움 (요즘 잘 안 씀)
- 부호(sign) 부분 : 0 양수, 1 음수
3-3. 부동 소수점 (floating-point)
- 특.징 : 둥.둥 떠다.니는 소.수점... (비트를 좀 더 효율적으로 쓸 수 있어서 요즘 많이 씀)
- 종류
- Single Precision(32bit) : Float
- Double Precision(64bit) : Double
- 지수 부분 (exponent)
- 음수를 표현하기 위해서 보수 기법 대신(뺄셈을 사용하지 않기 때문) bias 표현법을 사용
- exp - bias = 실제 지수
- 가수 부분 (manissa) : 길면 자르고, 남으면 0으로 채움
4. 문자와 문자열
3-1. 문자 인코딩
- 문자를 숫자로 표현하는 것
3-2. 아스키 코드
- 아스키 코드 : 7비트(0~127) 숫자에 문자를 하나씩 대응한 것
- 자료형 char에 저장할 수 있음 (1Byte = 8Bit = 0~255)
- 아스키 코드표
3-3. 유니코드
- 유니코드 : 16bit(0~65535) 범위에 문자를 하나씩 대응해 놓은 것.
- 기존 아스키 코드는 유지
- 유니코드 코드표
- 유니코드 평면
- 유니코드로 부족해서 도입
- 기본 다국어 평면(BMP)을 포함해 평면이 17개 있으므로, 모든 문자를 표현하려면 최소 3Byte의 자료형이 필요
- UTF(Unicode Transformation Format)를 이용한 유니코드 인코딩
- UTF : 유니코드 문자를 인코딩하는 방식으로, 몇 Bit를 사용하여
- 종류
- UTF-8
- 문자 하나를 표현할 때 최소 8bit가 필요
- 0000~007F (8bit로 표현)
- 0080~07FF (16bit로 표현)
- 0800~FFFF (32bit로 표현)
- BMP는 2Byte로 표현 가능하지만, 구분자를 표현하기 위해 3Byte까지 늘어남비트는 순서대로 x로 표시된 비트에 들어감 (아래 예제사진)
- 가변형 인코딩 방식
- 아스키 코드와 호환됨
- 문자 하나를 표현할 때 최소 8bit가 필요
- UTF-16
- 문자 하나를 표현할 때 최소 16bit가 필요
- 마찬가지로, 가변형 인코딩 방식
- 자료형 wchar은 UTF-16을 이용하여 인코딩 (2Byte = 16Bit)
- UTF-32
- 문자 하나를 표현할 때 최소 32bit가 필요
- 저장공간의 낭비가 심함
- UTF-8
3-4. 프로그래밍 언어 문자열
'스터디 노트 > 컴퓨터 과학 기초' 카테고리의 다른 글
컴퓨터과학 기초 > 04장 프로그래밍 언어/컴파일러 (0) | 2022.02.26 |
---|---|
컴퓨터과학 기초 > 03장 운영체제 - 메모리 (0) | 2021.11.24 |
컴퓨터과학 기초 > 02장 운영체제 - 프로세스와 스레드 (0) | 2021.11.24 |
컴퓨터과학 기초 > 01장 CPU (0) | 2021.11.16 |