ASCII








Таблица ASCII


ASCII (англ. American standard code for information interchange, [ˈæs.ki][1]) — название таблицы (кодировки, набора), в которой некоторым распространённым печатным и непечатным символам сопоставлены числовые коды. Таблица была разработана и стандартизована в США, в 1963 году. Название «ASCII» по-русски часто произносится как [аск(и)и́][источник не указан 291 день].


Таблица ASCII определяет коды для символов:




  • десятичных цифр;


  • латинского алфавита;

  • национального алфавита.mw-parser-output .ts-Переход img{margin-left:.285714em}
    [⇨];


  • знаков препинания;


  • управляющих символов.




Содержание






  • 1 История


  • 2 Наложение символов


  • 3 Национальные варианты ASCII


  • 4 Управляющие символы


  • 5 Структурные свойства таблицы


  • 6 Представление ASCII в ЭВМ


  • 7 Примечания


  • 8 См. также


  • 9 Ссылки





История |


Изначально (1963 год) ASCII была разработана для кодирования символов, коды которых помещались в 7 бит (128 символов; 27=128); при этом старший 7-й бит (нумерация с нуля) использовался для контроля ошибок, возникших при передаче данных. Со временем — кодировка была расширена до 256 символов (28=256); коды первых 128 символов не изменились. ASCII стала восприниматься как половина 8-битной кодировки, а «расширенной ASCII» называли ASCII с задействованным 8-м битом (например, КОИ-8).



Наложение символов |


С помощью символа Backspace (BS) (возврат на один символ) на принтере можно печатать один символ поверх другого. В ASCII таким же способом можно добавить к буквам диакритические знаки, например:




  • a BS ' → á


  • a BS ` → à


  • a BS ^ → â


  • o BS / → ø


  • c BS , → ç


  • n BS ~ → ñ


Примечание. В старых шрифтах — апостроф «'» рисовался с наклоном влево (сравните: «`» и «´»), а тильда «~» — была сдвинута вверх (сравните: «~» и «˜»), так что они как раз подходили на роль символов акут «´» и «тильда сверху».


Если в одной позиции дважды напечатать один и тот же символ — получится жирный символ; если в одной позиции напечатать символ, а затем подчёркивание «_» — получится подчёркнутый символ:




  • a BS aa


  • a BS _a


Эта техника до сих пор используется, например, в справочной системе man.



Национальные варианты ASCII |


Стандарт ISO 646 (ECMA-6) предусматривает возможность размещения в ASCII национальных символов. Для этого предлагается заменять символы «@», «[», «», «]», «^», «`», «{», «|», «}», «~». Также на месте знака решётки «#» может быть размещён символ фунта «£», а на месте символа доллара «$» — знак валюты «¤». Такая система хорошо подходит для европейских языков, так как в них используются символы латинского алфавита и лишь несколько дополнительных символов. Вариант ASCII, не содержащий национальных символов, называется «US-ASCII» или «international reference version».


Для некоторых языков (с нелатинской письменностью: русский, греческий, арабский, иврит и др.) существовали более радикальные модификации ASCII:



  • В одной из таких модификаций — на месте строчных латинских букв размещались национальные символы (для русского и греческого — заглавные буквы).

  • В другой модификации — предусматривалось переключение между US-ASCII и национальным вариантом; переключение осуществлялось «на лету»: с помощью символов «SO» (англ. shift out) и «SI» (англ. shift in); в этом случае — в национальном варианте можно было полностью заменить латинские буквы на национальные символы. См. также: КОИ-7.


Впоследствии оказалось удобнее использовать 8-битовые кодировки (кодовые страницы), в которых нижнюю половину кодовой таблицы (0—127) занимают символы US-ASCII, а верхнюю (128—255) — дополнительные символы, включая набор национальных символов. Таким образом, верхняя половина таблицы ASCII (до повсеместного внедрения Юникода) активно использовалась для представления локализированных символов, букв местного языка. Отсутствие единого стандарта размещения кириллических символов в таблице ASCII доставляло множество проблем с кодировками (КОИ-8, Windows-1251 и др.). Носители других языков с нелатинской письменностью тоже страдали, из-за наличия нескольких разных кодировок.


Первые 128 символов стандарта Юникод — совпадают с соответствующими символами US-ASCII.

















































































































































































Таблица ASCII
 
.0 .1
.2 .3
.4 .5
.6 .7
.8 .9
.A .B
.C .D
.E .F
0.
NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO
SI
1.
DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS
US
2.
    ! " # $ % & ' ( ) * + , - .
/
3.
0 1 2 3 4 5 6 7 8 9 : ; < = >
?
4.
@ A B C D E F G H I J K L M N
O
5.
P Q R S T U V W X Y Z [ ] ^
_
6.
` a b c d e f g h i j k l m n
o
7.
p q r s t u v w x y z { | } ~
DEL

В первой версии стандарта ASCII (1963 год) — в позициях 0x5e (94) и 0x5f (95) располагались символы «стрелка вверх» и «стрелка влево», соответственно. Стандарт ECMA-6 (1965 год) заменил их на знак вставки и символ подчёркивание «_», соответственно.


В Советском Союзе стандарт был утвержден в виде таблицы международной ссылочной версии кода КОИ-7 Н0 ГОСТ 27463-87 (СТ СЭВ 356-86) «Системы обработки информации. 7-битные кодированные наборы символов».[2]



Управляющие символы |



Таблица ASCII создавалась для обмена информацией по телетайпу. В набор были включены непечатаемые символы, используемые как команды для управления устройством телетайп. Аналогичные команды применялись и в других докомпьютерных средствах обмена сообщениями (азбука Морзе, семафорная азбука), учитывая специфику устройства.


Примечание: далее в списке — коды символов записаны в шестнадцатеричной системе счисления, после названий символов.



  • NUL, 00 — null («пустой»). Символ null всегда игнорировался. На перфолентах, цифра «1» обозначалась отверстием, а цифра «0» — отсутствием отверстия. Участки перфоленты, на которых не была записана информация — не содержали отверстий (то есть содержали символы null); такие участки располагались в начале и в конце ленты. Символ null по сей день используется во многих языках программирования (как признак конца строки) и обозначается «». (Термин «строка» обозначает последовательность символов.) В некоторых операционных системах, null — последний символ любого текстового файла.

Сообщения, передаваемые по каналу связи, делились на две части:



  • Заголовок;

  • Текст.


«Заголовок» содержал: адреса отправителя и получателя, контрольную сумму и т. п.; мог размещаться до «текста» или после. Термином «текст» называлась часть сообщения, предназначенная для печати.














































































































































































































Символ
Код
Расшифровка
Перевод
Описание

SOH
01

start of heading
начало «заголовка»


STX
02

start of text
начало «текста»
Включить печатающее устройство (телетайп). Текст для печати располагался между символами «STX» и «ETX».

ETX
03

end of text
конец «текста»
Выключить печатающее устройство (телетайп). В наши дни код «03» используется для отправки процессу сигнала «SIGINT» (сигнал-прерывание: англ. signal interrupt) и может быть набран нажатием комбинации клавиш Ctrl+C. Получив такой сигнал, процесс должен завершить работу[en].

EOT
04

end of transmission
конец передачи
Символ используется эмуляторами терминалов в значении «Конец файла» (EOF: англ. end of file) и может быть отправлен нажатием комбинации клавиш Ctrl+D. Получив такой сигнал, эмулятор терминала определит процесс, который в данный момент работает с терминалом, и установит в стандартном потоке ввода этого процесса (stdin: англ. standard input stream) флаг «Конец файла». В результате процесс прекратит чтение[en] stdin и начнёт обработку прочитанных данных.

ENQ
05

enquire
«Прошу подтверждения!»


ACK
06

acknowledgement
«Подтверждаю!»
Символ «NAK» означает обратное: «Не подтверждаю!».

BEL
07

bell

звуковой сигнал: звонок
Символ часто обозначается как «a» и используется для подачи звукового сигнала. В современном персональном компьютере звук воспроизведёт встроенный динамик. Например, следующие команды могут воспроизвести такой звук:


  • echo -e "a" или echo -e "07" — если эта команда будет введена через программу «bash»;


  • echo ^G — если эта команда будет введена через программу «cmd.exe» (для ввода символа «^G» нажмите Ctrl+G);


  • printf( "a" ); — если эта команда будет выполнена как исходный код программы на языке «Си».



BS
08

backspace
возврат на один символ
Клавиша ← Backspace служит для стирания предыдущего символа.

TAB
09

tab
горизонтальная табуляция
Обозначается как «t». Иногда называется «HT» (от англ. horizontal tabulation).

LF
0A

line feed

перевод строки
Команда для опускания каретки печатающего устройства на одну строку вниз. Обозначение конца строки текстового файла различается в семействах операционных систем:

  • для «UNIX» — одиночный символ «LF»;

  • для «Windows» — последовательность символов «CR LF».


Во многих языках программирования символ обозначается как «n». Нажатие на клавишу ↵ Enter при выводе текста переводит строку.



VT
0B

vertical tab
вертикальная табуляция


FF
0C

form feed
«прогон страницы», новая страница
Команда для принтера: продолжить печать с начала следующего листа.

CR
0D

carriage return

возврат каретки
Команда для принтера: продолжить печать с начала текущей строки (не с новой строки). Во многих языках программирования — символ «CR» обозначается как «r». В операционной системе «Mac» — символ «CR» (в прошлом) обозначал конец строки текстового файла. С клавиатуры символ «CR» может быть введён нажатием комбинации клавиш: Ctrl+M.

SO
0E

shift out
«Переключиться на другую ленту (кодировку)»
Другая лента обычно была окрашена в красный цвет. В дальнейшем — символ использовался для переключения на национальную кодировку.

SI
0F

shift in
«Переключиться на исходную ленту (кодировку)»
Команда для выполнения действия, обратного действию «SO».

DLE
10

data link escape
«Экранирование канала данных»
Любые символы, следующие после «DLE», должны восприниматься как данные, а не как управляющие символы.

DC1
11

device control 1
Первый символ управления устройством
Команда включить устройство чтения перфоленты.

DC2
12

device control 2
Второй символ управления устройством
Команда включить перфоратор.

DC3
13

device control 3
Третий символ управления устройством
Команда выключить устройство чтения перфоленты.

DC4
14

device control 4
Четвёртый символ управления устройством
Команда выключить перфоратор.

NAK
15

negative acknowledgment
«Не подтверждаю!»
Обратно символу «ACK».

SYN
16

synchronization

Этот символ передавался, когда (для синхронизации) было необходимо что-нибудь передать.

ETB
17

end of text block
конец текстового блока
Иногда текст (по техническим причинам) разбивался на блоки.

CAN
18

cancel
«Отмена»
Отмена того, что было передано ранее.

EM
19

end of medium
«Конец носителя»
Кончилась перфолента, бумага — и т. п.

SUB
1A

substitute
«Подставить»
Символ ставится:

  • На месте символа, значение которого было потеряно (или испорчено) при передаче;

  • Перед символом, для интерпретации которого нужно переключиться на дополнительный набор символов;

  • Перед символом, печатать который нужно другим цветом...


В настоящее время символ вставляется нажатием комбинации клавиш Ctrl+Z и используется для обозначения конца файла в операционных системах «DOS» и «Windows».



ESC
1B

escape

Знак того, что символ, следующий после «ESC», имеет какое-то другое (отличное от определённого в ASCII) значение. Обычно после символа «ESC» следуют управляющие последовательности; в операционной системе «DOS» они реализуются драйвером «ANSI.SYS».

DEL
7F

delete
стереть последний символ
Символом «DEL» (состоящим в двоичном коде из всех единиц) можно было «забить» любой символ. Устройства и программы игнорировали «DEL» так же, как и «NUL».

Код этого символа происходит из первых текстовых процессоров с памятью на перфоленте: в них удаление символа происходило «забиванием» его кода дырочками (обозначавшими логические единицы).



Поддерживалось разделение данных на 4 уровня:






































Символ
Код
Расшифровка
Перевод
Описание

FS
1C

file separator
разделитель файлов
сообщение могло состоять из файлов

GS
1D

group separator
разделитель групп
файлы могли состоять из групп

RS
1E

record separator
разделитель записей
группы могли состоять из записей

US
1F

unit separator
разделитель юнитов
записи могли состоять из юнитов


Структурные свойства таблицы |



  • Коды символов цифр «0»—«9» в двоичной системе счисления начинаются с 00112, а заканчиваются двоичными значениями чисел. Например, 01012 — число 5, а 0011 01012 — символ «5». Зная об этом — можно преобразовать двоично-десятичные числа (BCD) в ASCII-строку с помощью простого добавления слева 00112 к каждому двоично-десятичному полубайту.


  • Буквы «A»—«Z» верхнего и нижнего регистров различаются в своём представлении только одним битом, что упрощает преобразование регистра и проверку на принадлежность кода к диапазону значений. Буквы представляются своими порядковыми номерами в алфавите, записанными пятью цифрами в двоичной системе счисления, перед которыми стоит 0102 (для букв верхнего регистра) или 0112 (для букв нижнего регистра).



Представление ASCII в ЭВМ |


На подавляющем большинстве современных компьютеров, минимально адресуемая единица памяти — байт (размером в 8 бит); поэтому там используются 8-битные, а не 7-битные символы. Обычно символ ASCII расширяют до 8 бит, просто добавляя один нулевой бит в качестве старшего.


На компьютерах IBM/360 однако (в случае использования ASCII) применялся другой метод: 6-й бит (если первым считать самый младший бит) перемещается в 7-й, а бывший 7-й «раздваивается» и копируется и в 8-й бит, и в 6-й. Получается такая таблица[3]:






































































































































































































































































































































 
.0 .1
.2 .3
.4 .5
.6 .7
.8 .9
.A .B
.C .D
.E .F
0.
NUL SOM EOA EOM
EQT WRU RU BELL
BKSP HT LF VT
FF CR SO SI
1.
DC0
DC1
DC2
DC3
DC4
ERR SYNC LEM
S0
S1
S2
S3
S4
S5
S6
S7
2.
       
       
       
       
3.
       
       
       
       
4.
BLANK ! " #
$ % & '
( ) * +
, - . /
5.
0 1 2 3
4 5 6 7
8 9 : ;
< = > ?
6.
       
       
       
       
7.
       
       
       
       
8.
       
       
       
       
9.
       
       
       
       
A.
@ A B C
D E F G
H I J K
L M N O
B.
P Q R S
T U V W
X Y Z [
]
C.
       
       
       
       
D.
       
       
       
       
E.
  a b c
d e f g
h i j k
l m n o
F.
p q r s
t u v w
x y z  
    ESC DEL

На компьютерах с минимально адресуемой единицей памяти в 36 бит — поначалу использовали 6-битные символы (1 слово = 6 символов). После перехода на ASCII на таких компьютерах в одном слове стали размещать либо 5 семибитовых символов (1 бит оставался лишним), либо 4 девятибитовых символа.


Коды ASCII используются в программировании как промежуточные кроссплатформенные коды нажатых клавиш (в противовес скан-кодам IBM PC и прочим внутренним кодам). Для раскладки клавиатуры QWERTY — таблица кодов выглядит так, как показано в следующей таблице.


































































































































Escape

27






F1

112



F2

113



F3

114




F4

115



F5

116



F6

117



F7

118



F8

119



F9

120



F10

121



F11

122



F12

123



Print Screen



Scroll Lock

145



Pause

19






`

192



1

49



2

50



3

51



4

52



5

53



6

54



7

55



8

56



9

57



0

48



-

189



=+

187



Back Space

8



Insert

45



Home

36



Page Up

33



Num Lock

144



/ доп.

111



* доп.

106




+ доп.

107



Tab

9



Q

81



W

87



E

69



R

82



T

84



Y

89



U

85



I

73



O

79



P

80



[

219



]

221






Delete

46



End

35



Page Down

34



7 доп.

103



8 доп.

104



9 доп.

105



Caps Lock

20



A

65



S

83



D

68



F

70



G

71



H

72



J

74



K

75



L

76



;

186



'

222



Enter

13












4 доп.

100



5 доп.

101



6 доп.

102





Enter доп.


13



Shift

16



Z

90



X

88



C

67



V

86



B

66



N

78



M

77



,<

188



.>

190



/

191



Shift

16



|

220









Up

38






1 доп.

97



2 доп.

98



3 доп.

99



Ctrl

17



win




Alt

18



Space Bar

32



Alt

18



win



list



Ctrl

17






Left

37



Down

40



Right

39



Ins/0 доп.

45/96



Del/. доп.

46/110




Примечания |





  1. ASCII (англ.). the Cambridge English Dictionary. dictionary.cambridge.org. Проверено 9 апреля 2018.


  2. ГОСТ 27463-87 (СТ СЭВ 356-86) Системы обработки информации. 7-битные кодированные наборы символов (с Изменением N 1), ГОСТ от 29 октября 1987 года №27463-87 (неопр.). docs.cntd.ru. Проверено 9 апреля 2018.


  3. Amdahl G. M., Blaauw G. A., Brooks F. P., Jr. «Architecture of the IBM system/360». 1964




См. также |



  • Переносимый набор символов

  • Управляющие символы

  • EBCDIC

  • YUSCII

  • Юникод

  • ASCII art

  • КОИ-8



Ссылки |



  • Цветная таблица ASCII

  • Standard ECMA-6: 7-bit coded character set. 6th edition (англ.). Ecma international (December 1991). Архивировано 23 августа 2011 года.

  • Tom Jennings. An annotated history of some character codes or ASCII. American standard code for information infiltration (англ.) (1999-09-16 — 2004-10-29). Архивировано 23 августа 2011 года.

  • ASCII chart and other resources (англ.). JimPrice.Com.

  • ASCII-игры
























































Кодировки символов
Основы

алфавит • текст (файл • данные) • набор символов • конверсия

Исторические кодировки

Докомп.:

семафорная (Макарова) • Морзе • Бодо • МТК-2

Комп.:

6-битная • УПП • RADIX-50 • EBCDIC (ДКОИ-8) • КОИ-7 • ISO 646

современное
8-битное
представление


символы

ASCII (управляющие • печатные) • не-ASCII (псевдографика)
8-битные код.стр.
Кириллица: КОИ-8 • Основная кодировка • MacCyrillic

ISO 8859

1 (лат.) • 2 • 3 • 4 • 5 (кир.) • 6 • 7 • 8 • 9 • 10 • 11 • 12 • 13 • 14 • 15 (€) • 16
Windows

1250 • 1251 (кир.) • 1252 • 1253 • 1254 • 1255 • 1256 • 1257 • 1258 • WGL4
IBM & DOS

437 • 850 • 852 • 855 • 866 «альт.» • МИК

Многобайтные
Традиционные

DBCS (GB2312) • HTML

Unicode

UTF-32 • UTF-16 • UTF-8 • список символов (кириллица)

Связанные темы

интерфейс пользователя • раскладка клавиатуры • локаль • перевод строки • шрифт • транслит • нестандартные шрифты

Утилиты

iconv • recode



Popular posts from this blog

Список кардиналов, возведённых папой римским Каликстом III

Deduzione

Mysql.sock missing - “Can't connect to local MySQL server through socket”