ASCII
American Standard Code for information interchange, 아스키코드
1963년 미국표준협회(ANSI)에 의해 결정되어 국제적으로 널리 사용되고 있는 숫자, 문자, 특수문자 등에 부여한 7비트(Bit) 부호체계.
1963년 미국표준협회(ANSI)는 개인용 컴퓨터(PC)와 같은 소형 컴퓨터를 중심으로 편리하게 사용할 수 있는 7비트 표준 부호체계를 만들어 보급하였다. 이것이 바로 오늘날 국제적으로 널리 사용되고 있는 아스키코드이다.
아스키코드의 구성
아스키코드는 128개의 문자 조합을 제공하는 7비트 부호로 구성되어 있다. 아래 표와 같이 제어용으로 사용되는 코드를 비롯하여, 출력할 수 있는 숫자, 영문 알파벳 대소문자, 특수문자 등으로 구성되어 있다.
문자 | 값 | 설명 | 문자 | 값 | 설명 |
0 | NUL | Null char | 64 | @ | At symbol |
1 | SOH | Start of Heading | 65 | A | Uppercase A |
2 | STX | Start of Text | 66 | B | Uppercase B |
3 | ETX | End of Text | 67 | C | Uppercase C |
4 | EOT | End of Transmission | 68 | D | Uppercase D |
5 | ENQ | Enquiry | 69 | E | Uppercase E |
6 | ACK | Acknowledgment | 70 | F | Uppercase F |
7 | BEL | Bell | 71 | G | Uppercase G |
8 | BS | Back Space | 72 | H | Uppercase H |
9 | HT | Horizontal Tab | 73 | I | Uppercase I |
10 | LF | Line Feed | 74 | J | Uppercase J |
11 | VT | Vertical Tab | 75 | K | Uppercase K |
12 | FF | Form Feed | 76 | L | Uppercase L |
13 | CR | Carriage Return | 77 | M | Uppercase M |
14 | SO | Shift Out / X-On | 78 | N | Uppercase N |
15 | SI | Shift In / X-Off | 79 | O | Uppercase O |
16 | DLE | Data Line Escape | 80 | P | Uppercase P |
17 | DC1 | Device Control 1 (oft. XON) | 81 | Q | Uppercase Q |
18 | DC2 | Device Control 2 | 82 | R | Uppercase R |
19 | DC3 | Device Control 3 (oft. XOFF) | 83 | S | Uppercase S |
20 | DC4 | Device Control 4 | 84 | T | Uppercase T |
21 | NAK | Negative Acknowledgement | 85 | U | Uppercase U |
22 | SYN | Synchronous Idle | 86 | V | Uppercase V |
23 | ETB | End of Transmit Block | 87 | W | Uppercase W |
24 | CAN | Cancel | 88 | X | Uppercase X |
25 | EM | End of Medium | 89 | Y | Uppercase Y |
26 | SUB | Substitute | 90 | Z | Uppercase Z |
27 | ESC | Escape | 91 | [ | Opening bracket |
28 | FS | File Separator | 92 | \ | Backslash |
29 | GS | Group Separator | 93 | ] | Closing bracket |
30 | RS | Record Separator | 94 | ^ | Caret - circumflex |
31 | US | Unit Separator | 95 | _ | Underscore |
32 | Space | 96 | ` | Grave accent | |
33 | ! | Exclamation mark | 97 | a | Lowercase a |
34 | " | Double quotes (or speech marks) | 98 | b | Lowercase b |
35 | # | Number | 99 | c | Lowercase c |
36 | $ | Dollar | 100 | d | Lowercase d |
37 | % | Procenttecken | 101 | e | Lowercase e |
38 | & | Ampersand | 102 | f | Lowercase f |
39 | ' | Single quote | 103 | g | Lowercase g |
40 | ( | Open parenthesis (or open bracket) | 104 | h | Lowercase h |
41 | ) | Close parenthesis (or close bracket) | 105 | i | Lowercase i |
42 | * | Asterisk | 106 | j | Lowercase j |
43 | + | Plus | 107 | k | Lowercase k |
44 | , | Comma | 108 | l | Lowercase l |
45 | - | Hyphen | 109 | m | Lowercase m |
46 | . | Period, dot or full stop | 110 | n | Lowercase n |
47 | / | Slash or divide | 111 | o | Lowercase o |
48 | 0 | Zero | 112 | p | Lowercase p |
49 | 1 | One | 113 | q | Lowercase q |
50 | 2 | Two | 114 | r | Lowercase r |
51 | 3 | Three | 115 | s | Lowercase s |
52 | 4 | Four | 116 | t | Lowercase t |
53 | 5 | Five | 117 | u | Lowercase u |
54 | 6 | Six | 118 | v | Lowercase v |
55 | 7 | Seven | 119 | w | Lowercase w |
56 | 8 | Eight | 120 | x | Lowercase x |
57 | 9 | Nine | 121 | y | Lowercase y |
58 | : | Colon | 122 | z | Lowercase z |
59 | ; | Semicolon | 123 | { | Opening brace |
60 | < | Less than (or open angled bracket) | 124 | | | Vertical bar |
61 | = | Equals | 125 | } | Closing brace |
62 | > | Greater than (or close angled bracket) | 126 | ~ | Equivalency sign - tilde |
63 | ? | Question mark | 127 | Delete |
아스키코드의 확장
7비트의 아스키코드에서 표현할 수 없는 문자, 이를테면 라틴어나 수학기호 등을 표현하기 위해 1개의 비트를 추가한 8비트 아스키코드가 나오게 되었다. 비트(Bit)는 2진법의 0과 1 가운데 하나를 나타내는 단위이다. 비트 8개를 모아 놓은 것이 1바이트(Byte)이므로 8비트로 표현할 수 있는 최대 문자의 수는 256개가 된다. 이를 이용해서 기존의 아스키코드 128개에 추가로 128개의 문자를 표현하였다.
하지만 256개의 문자로도 표현할 수 없는 언어들, 예를 들면 중국어나 한국어 등과 같은 다양한 국가의 문자를 모두 표현하기 위해 16비트 기반의 65,536자를 구성하는 것이 가능한 유니코드(Unicode)가 등장하게 되었다.
출처: 네이버 지식백과 / 두산백과 두피디아, 두산백과)
미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( /ˈæski/, 아스키)는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 아스키는 컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 인코딩이 아스키에 기초를 두고 있다.
아스키는 7비트 인코딩으로, 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 총128개로 이루어진다. 제어 문자들은 역사적인 이유로 남아 있으며 대부분은 더 이상 사용되지 않는다. 출력 가능한 문자들은 52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자로 이루어진다.
아스키가 널리 사용되면서 다양한 아스키 기반의 확장 인코딩들이 등장했으며, 이들을 묶어서 아스키라고 부르기도 한다. 대표적으로 7비트 인코딩을 유지한 ISO/IEC 646과, 원래 아스키 코드 앞에 비트 0을 넣어 8비트 인코딩을 만든 IBM 코드 페이지와 ISO 8859가 있다. 이 인코딩들은 언어군에 따라 같은 숫자에 서로 다른 문자가 배당된 경우가 많다.
역사
아스키 코드는 지금의 미국 국가표준 협회(ANSI)의 전신인 미국 표준 협회(ASA)가 주도한 X3 위원회가 개발했다. 그 아래의 X3.2 소위원회는 1960년 10월 6일 아스키 표준화 작업을 시작하여, 1963년 표준화 초판을 발간했고,[2][3] 1967년 개정했으며,[4][5] 가장 최근의 업데이트는 1986년에 있었다.[6]
같이 보기
아스키 아트 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 주의: 이 문서는 아스키 아트를 담고 있습니다. 사용자 환경에 따라서는 올바르게 표시되지 않을 수도 있습니다. 아스키 아트(ASCII Art)란 아스키 코드 0x20~0x7e에
ko.wikipedia.org
출처: 위키백과 아스키 .
Unicode
유니코드(Unicode)는 전 세계의 모든 문자를 다루도록 설계된 표준 문자 전산 처리 방식이다. 유니코드 컨소시엄(Unicode Consortium)에서 제정, 관리한다.
주요 구성 요소는 ISO/IEC 10646 Universal Character Set과 UCS, UTF 등의 인코딩 방식, 문자 처리 알고리즘 등이다. 전 세계의 모든 문자를 담는 ISO/IEC 10646 코드표를 사용함으로써, 각 언어와 문자 체계에 따른 충돌 문제를 해결하였다. 따라서 유니코드를 사용하면 한글과 신자체·간체자, 아랍 문자 등을 통일된 환경에서 사용할 수 있다.
초창기에는 문자 코드는 ASCII의 로마자 위주 코드였고, 1바이트의 남은 공간에 각 나라가 자국 문자를 할당하였다. 하지만 이런 상황에서 다른 국가에 이메일을 보냈더니 글자가 와장창 깨졌던 것. 인터넷 웹페이지도 마찬가지였다. 이에 따라 4바이트(32비트, 약 42억 자)의 넉넉한 공간에 세상의 모든 문자를 할당한 결과물이 이것이다.
현재의 유니코드는 지구상에서 통용되는 대부분의 문자들을 담고 있다. 여기에는 언어를 표기할 때 쓰는 문자는 물론, 악보 기호, 이모지, 태그, 마작이나 도미노 기호 같은 것들도 포함된다.
모든 문자 체계를 담고 있는 것은 아니라서, 과거에 사용된 문자 체계나 쓰임이 적은 인공문자,[1] 자료가 많이 남아 있지 않은 문자 체계는 등록이 되어있지 않아 유니코드로 표현할 수 없다. 물론 아직 유니코드에 없다 뿐이지 어지간한 문자 체계는 유니코드에 집어 넣으려는 계획이 진행중이다. 앞으로 유니코드에 뭘 넣을지 보여 주는 로드맵[2]이 있는데 꽤 알차게 차 있다. 선형문자 A는 해독도 안 되었는데 들어가 있다 물론 빈 공간도 꽤 있어 앞으로 유니코드 공간이 부족한 일이 생기려면 한참 남았다. 17개의 플레인 중에 현재는 7개만 사용되고 10개는 아직 사용되지 않고 있다. 공실률(?)로 치면 60%에 육박하는, 말 그대로 반 이상이 현재 미할당이다.
역사
유니코드는 1991년 10월에 최초 버전(1.0.0)이 발표됐으며, 1992년 6월 1.0.1버전에서 CJK 공통한자(CJK Unified Ideographs)가 정의되었다. 1993년 6월 1.1버전에서 기존 한글 2,350글자에 추가 4,306글자가 할당되었다. 그러다가 1996년 7월 2.0버전이 발표되었는데, 한국측의 요청으로 한글 대이동 사건이 벌어졌다. 기존 배치는 삭제되고, 현대 한글의 모든 글자 11,172개가 U+AC00~D7A3 영역으로 재배치 되었다. 그리고 이후로는 한번 할당된 문자는 더이상 옮기지 않는다는 원칙도 만들어졌다.
현재 최신 버전은 2022년 9월 14일에 발표된 15.0이다.
표기관례
유니코드 문자의 경우 해당 글자의 코드를 표기할 때 U+(16진수 숫자)[3]라고 쓴다. 예를 들면 한글 '가' 자는 유니코드에서 16진수로 AC00(10진수의 44032)라는 코드 넘버를 가지는데, 이것을 U+AC00이라고 적는 식이다.
문자 표기 관례는 아니지만 16진수 표기의 관례를 따라 0x 를 붙여 0xAC00라고 표기된 경우도 간혹 있으니 참고하면 좋다. 레지스트리 편집 등의 컴퓨터에서의 수 표현 영역으로 넘어가면 AC 00 이라 적힌 것을 볼 수 있고, Endian에 따라 00 AC로 적히기도 한다.
참고로 U+라는 표기 자체는 LG(LG U+)보다 유니코드 쪽이 20년 정도 먼저 써 왔다.
5. 인코딩
encoding : 부호화, 코드화, 암호화, 복호화
유니코드와 유니코드 인코딩을 가장 쉽게 설명하는 방법은 유니코드는 각 글자에 숫자를 배당하는 방식, 규격이고 인코딩은 유니코드 숫자를 저장하는 방식, 표현이라고 보면 된다. 유니코드는 문자 하나를 4바이트(32비트) 테이블에 배당한다. 하지만 이걸 그대로 사용할 경우 (가장 사용 비중이 높은) 로마자(혹은 프로그래밍, url 등의 통신 포함) 입장에서는 기존의 ASCII에 비해 용량이 4배가 되어 엄청나게 비효율적이 된다.
이 점을 보완하기 위한 것이 가변길이 문자 인코딩으로, 자주 쓰이는 문자 테이블을 1바이트(UTF-8) 또는 2바이트(UTF-16)으로 표현할 수 있는 대신 자주 쓰이지 않는 문자 테이블을 표현하는데는 더 많은 바이트가 필요해진다. 대표적으로 UTF-8에서 한글을 표현하는데는 3바이트가 필요하며, 6바이트가 필요한 테이블도 있다.(호환성 문제로 현재는 4바이트까지만 사용) UTF-8 같은 경우 ASCII와 호환된다는 특성도 있다. 흔히 우리가 웹 브라우저의 인코딩을 설정하면서 자주 보는 UTF-8이라는 말이 이것이다.
예를 들어 A(65)를 보자. A라는 글자를 숫자 65에 배당하는 것(65를 읽으면 A라고 표현하라는 것)이 유니코드의 개념이다. 이 65라는 숫자를 2진수로 저장할 때, 8자릿수로 표현해서 0100 0001 이라고 쓰거나, 혹은 규모를 키우기 위해 16자릿수로 표현해서 0000 0000 0100 0001 이라고 쓰거나, 혹은 구버전 호환성을 높이거나 처리속도를 빠르게 하기 위해 0001 0100 (8자리)와 0001 0100 0000 0000 (16자리) 처럼 거꾸로 쓰거나, 헷갈리지 말라고 110(+2) 0100 0001, 11110(+4) 0000 0000 0100 0001 처럼 가변정보를 넣어 쓰는 등, 이런 논리와 방식을 결정하는 것이 인코딩의 종류다.
참고로 유니코드의 인코딩 방식 종류로는 위에서 언급된 것을 포함하여 대략 다음과 같은 것들이 있다.
UTF-7, UTF-8, UTF-16, UTF-32, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE
많은 서적이나 자료에서 유니코드를 두고 아직까지 "2바이트 인코딩"이라는 표현을 사용하고 있는데, 유니코드 2.0 (1996년 발표) 부터는 맞지 않는 말이다. 현대의 유니코드 표준에는 여러 인코딩 체계가 정의되어 있으며, 과거 유니코드 1.x 시절의 UCS-2를 제외하고는 고정 2바이트 인코딩이라고 할 수 있는 것은 없다. 게다가 유니코드에 할당된 문자의 수가 이미 (2바이트로 표현할 수 있는 최대 수치인) 65,535개를 넘어선 지 오래되었기 때문에...
5.1. UTF-8
전문적 지식을 요하지 않는 분야에서 그냥 유니코드라고 했을 때는 십중팔구 이 인코딩이라 생각하면 될 정도로 표준적인, 호환성이 가장 좋은 인코딩이다. 자세한 사항은 문서 참조.
더 많은 내용은 출처 : 나무위키 유니코드 에서 확인
유니코드 - 나무위키
유니코드에 있는 모든 한글 낱자는 다음과 같다. 자음의 경우 위의 것이 초성, 아래의 것이 종성이다. 없음종류낱자개수A초성ᄀᄁᅚ~ᅘᅙꥼ125B중성ᅡᅶᅷ~ᆠᆡᆢ95C종성ᆨᆩᇺ~ᇷᇸᇹ138 일단 단
namu.wiki
Binary
바이너리(binary)는 기본적으로 두 조각, 두 부분을 의미하며, 다음의 의미로도 쓰인다.
- 바이너리는 0과 1, 두 숫자로만 이루어진 이진법(二進法)을 의미한다.
- 컴퓨터에서 정보는 이진 형태로 저장되며, 바이너리는 이진 파일(BIN)을 의미한다.
- 이진 파일은 텍스트 형태가 아닌 이진 형태로 인코딩 된 파일이다.하지만 많이쓰이진 않는다.
- 바이너리는 프로그램 배포에서 소스코드가 아닌 실행 파일을 나타낸다.
같이 보기
출처: 위키백과 바이너리
그림 출처 : https://medicalxpress.com/news/2017-12-theories-neural-encoding.html