일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 동적계획법
- sqld
- 깃허브
- 정처기
- 다이나믹프로그래밍
- SQL
- 이벤트루프
- 영속성 컨텍스트
- NoSQL
- 실행 컨텍스트
- 스프링부트
- 게시판
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- 분할정복
- JPA
- spring security
- Spring Boot
- document database
- 레디스
- 정보처리기사
- 호이스팅
- in-memory
- 스프링 부트
- 자바의 정석
- 스프링 시큐리티
- MongoDB
- Redis
- github
- VMware
- 캐시
- Today
- Total
FreeHand
데이터 표현 본문
컴퓨터는 모든 정보를 0과 1로 표현한다.
숫자 표현 방법
정보 단위
0과 1을 나타내는 가장 작은 단위를 bit(비트)라고 한다.
1bit는 0 또는 1을 나타낼 수 있다.
2bit는 (0, 0), (0, 1), (1, 0), (1, 1) 을 나타낼 수 있다.
n비트는 2ⁿ가지 정보를 표현할 수 있다.
1byte | 8bit |
1kB | 1000byte |
1MB | 1000kB |
1GB | 1000MB |
1TB | 1000GB |
* word(워드) : CPU가 한번에 처리할 수 있는 데이터의 크기
한번에 32비트를 처리할 수 있으면 1워드는 32비트이다. 현대 컴퓨터의 워드 크기는 대부분 32비트 또는 64비트이다.
이진법
숫자가 1을 넘어갈 때 자리 올림을 하여 0과 1로만 숫자를 표현하는 방법. 이진법으로 표현한 수를 이진수라고 한다.
이진수의 음수는 2의 보수로 표현한다.
2의 보수는 이진수의 모든 0과 1을 반대로 바꾸고 1을 더한 값이다.
이진수 11의 2의 보수는 이진수 01이다. (11 -> 00 -> 01)
즉, 이진수 11의 음수는 이진수 01이다.
이진수 01과 이진수 11의 음수인 이진수 01을 구분하기 위해서 플래그를 사용한다.
* 2의 보수 표현의 한계
이진수 1000의 2의 보수는 (1000 -> 0111 -> 1000)으로 자기 자신이 되는 문제가 있다.
즉, -2ⁿ과 2ⁿ을 동시에 표현할 수 없다.
십육진법
십육진법은 (0~9, A~F)의 16개의 종류로 숫자를 표현한다.
이진수와의 변환이 쉽기 때문에 사용된다.
* 십육진수 -> 이진수 변환
2⁴ = 16이므로 십육진수 숫자 하나를 표현하기 위해서 4비트의 이진수가 필요하다.
따라서 십육진수 숫자 하나를 4비트 이진수로 바꾸면 된다.
십육진수 1A2B에서 1은 이진수로 0001, A는 1010, 2는 0010, B는 1011이므로
십육진수 1A2B는 이진수 0001101000101011이 된다.
이진수 -> 십육진수 변환은 반대로 하면 된다.
문자 표현 방법
문자 집합과 인코딩
컴퓨터가 인식하고 표현할 수 있는 문자의 모음을 문자 집합(character set)이라고 한다.
문자 집합에 있는 문자를 0과 1로 변환하는 과정을 문자 인코딩(character encoding)이라고 한다.
반대로 0과 1을 문자로 변환하는 과정을 문자 디코딩(character decoding)이라고 한다.
아스키 코드(ASCII)
초창기 문자 집합.
하나의 아스키 문자를 나타내기 위해서 8비트를 사용한다.
그중 1비트는 오류 검출을 위한 패리티 비트(parity bit)이고 나머지 7비트로 문자를 표현한다.
따라서 총 128개의 문자를 표현할 수 있다.
*아스키 코드표
ASCII - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 1972 프린터 사용 설명서에 개시된 아스키 코드 차트표 미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( , 아스키)는 영문
ko.wikipedia.org
아스키 코드는 표현하지 못하는 언어가 많다.
그래서 더 많은 문자를 표현할 수 있는 문자 집합과, 그에 맞는 인코딩 방식인 EUC-KR과 CP949가 등장했다.
하지만 여전히 표현하지 못하는 문자가 많고, 언어마다 인코딩 방식이 달라 불편함이 있었다.
이런 불편함 때문에 유니코드가 등장했다.
유니코드는 대부분 나라의 문자, 특수문자, 이모티콘 등을 표현할 수 있어서 현대에 가장 많이 사용되는 문자 집합이다.
인코딩 방법으로는 UTF-8이 가장 대중적으로 사용된다.
'CS' 카테고리의 다른 글
명령어 사이클과 인터럽트 (0) | 2023.12.04 |
---|---|
CPU (0) | 2023.11.03 |
명령어 (1) | 2023.11.01 |