Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

ASCII



План:


Введення

ASCII ( англ. American Standard Code for Information Interchange ) - американська стандартна кодіровочних таблиця для друкованих символів і деяких спеціальних кодів. В американському варіанті англійської мови вимовляється [ески], тоді як у Великобританії частіше вимовляється [аски]; по-русски вимовляється також [аски] або [аски].


ASCII представляє собою кодування для представлення десяткових цифр, латинської та національного алфавітів, розділових знаків і керуючих символів. Спочатку розроблена як 7-бітна, з широким розповсюдженням 8-бітного байта ASCII стала сприйматися як половина 8-бітної. У комп'ютерах зазвичай використовують розширення ASCII з задіяної другою половиною байта (наприклад КОИ-8).


1. Накладення символів

Завдяки символу BS (повернення на крок) на принтері можна друкувати один символ поверх іншого. В ASCII було передбачено додавання таким чином діакрітікі до букв, наприклад:

  • a BS '
  • a BS `
  • a BS ^
  • o BS /
  • c BS ,
  • n BS ~

Примітка: у старих шрифтах апостроф 'малювався з нахилом вліво, а тильда ~ була зрушена вгору, так що вони якраз підходили на роль Акута і тильди зверху.

Якщо на символ накладається той же символ, то виходить ефект жирного шрифту, а якщо на символ накладається підкреслення, то виходить підкреслений текст.

  • a BS aA
  • a BS _a

Примітка: це використовується, наприклад, в довідковій системі man.


2. Національні варіанти ASCII

Стандарт ISO 646 (ECMA-6) передбачає можливість розміщення національних символів на місці @ [\] ^ `{|} ~. На додаток до цього, на місці # може бути розміщений , а на місці $ - . Така система добре підходить для європейських мов, де потрібні лише кілька додаткових символів. Варіант ASCII без національних символів називається US-ASCII, або "International Reference Version".

Для деяких мов з нелатинськими писемністю ( російського, грецького, арабського, івриту) існували більш радикальні модифікації ASCII. Одним з варіантів була відмова від малих латинських літер - на їх місці розміщувалися національні символи (для російської та грецької - лише великими літерами). Інший варіант - перемикання між US-ASCII і національним варіантом "на льоту" за допомогою символів SO (Shift Out) і SI (Shift In) - в цьому випадку в національному варіанті можна повністю усунути латинські букви і зайняти весь простір під свої символи ..

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

В Юникоде перші 128 символів теж збігаються з відповідними символами US-ASCII.


3. Кодування

.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 TAB 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

Символ 0x5e в першій версії стандарту ASCII (1963) відповідав стрілкою вгору, а символ 0x5f - стрілкою вліво. Стандарт ECMA-6 (1965) замінив їх на знак вставки (використовується також у ролі циркумфлекс) і нижню межу ( підкреслення) відповідно.


4. Керуючі символи

Оскільки ASCII спочатку призначався для обміну інформацією (по телетайпу), в ньому, крім інформаційних символів, використовуються символи-команди для управління зв'язком. Це звичайний набір спецсигналів, що застосовувався і в інших докомпьютерную засобах обміну повідомленнями ( азбука Морзе, семафорна абетка), доповнений з урахуванням специфіки пристрою.

(Після назви кожного символу вказано його 16-ковий код)

  • NUL, 00 - Null, порожній. Завжди ігнорувався. На перфострічках 1 являє дірочкою, 0 - відсутністю дірочки. Тому порожні частини перфострічки до початку і після кінця повідомлення складалися з таких символів. Зараз використовується в багатьох мовах програмування як кінець рядка. (Рядок розуміється як послідовність символів.) У деяких операційних системах NUL - останній символ будь-якого текстового файлу.
  • SOH, 01 - Start Of Heading, початок заголовка.
  • STX, 02 - Start of Text, початок тексту. Текстом називалася частина повідомлення, призначена для друку. Адреса, контрольна сума і т. д. входили або в заголовок, або в частину повідомлення після тексту.
  • ETX, 03 - End of Text, кінець тексту. Тут телетайп припиняв друкувати. Використання символу Ctrl-C, що має код 03, для припинення роботи чогось (зазвичай програми), сягає ще до тих часів.
  • EOT, 04 - End of Transmission, кінець передачі. В системі UNIX Ctrl-D, що має той самий код, означає кінець файлу введений із клавіатури.
  • ENQ, 05 - Enquire. Прошу підтвердження.
  • ACK, 06 - Acknowledgement. Підтверджую.
  • BEL, 07 - Bell, дзвінок, звуковий сигнал. Зараз теж використовується. У мовах програмування C і C + + позначається \ a.
  • BS, 08 - Backspace, повернення на один символ. Зараз стирає попередній символ.
  • TAB, 09 - Tabulation. Позначався також HT - Horizontal Tabulation, горизонтальна табуляція. У багатьох мовах програмування позначається \ t.
  • LF, 0A - Line Feed, переклад рядка. Зараз у кінці кожного рядка текстового файлу ставиться або цей символ, або CR, або і той і інший (CR, потім LF), залежно від операційної системи. У багатьох мовах програмування позначається \ n і при виведенні тексту призводить до перекладу рядка.
  • VT, 0B - Vertical Tab, вертикальна табуляція.
  • FF, 0C - Form Feed, нова сторінка.
  • CR, 0D - Carriage Return, повернення каретки. У багатьох мовах програмування цей символ, що позначається \ r, можна використовувати для повернення в початок строчки без перекладу рядка. У деяких операційних системах цей же символ, що позначається Ctrl-M, ставиться в кінці кожного рядка текстового файлу перед LF.
  • SO, 0E - Shift Out, зміни колір стрічки (використовувався для двокольоровий стрічок; колір змінювався зазвичай на червоний). Надалі позначав початок використання національної кодування.
  • SI, 0F - Shift In, назад до Shift Out.
  • DLE, 10 - Data Link Escape, такі символи мають спеціальний сенс.
  • DC1, 11 - Device Control 1, 1-й символ управління пристроєм - включити пристрій читання перфострічки.
  • DC2, 12 - Device Control 2, 2-й символ управління пристроєм - включити перфоратор.
  • DC3, 13 - Device Control 3, 3-й символ управління пристроєм - вимкнути пристрій читання перфострічки.
  • DC4, 14 - Device Control 4, 4-й символ управління пристроєм - вимкнути перфоратор.
  • NAK, 15 - Negative Acknowledgment, не підтверджую. Назад до Acknowledgment.
  • SYN, 16 - Synchronization. Цей символ передавався, коли для синхронізації було необхідно щось передати.
  • ETB, 17 - End of Text Block, кінець текстового блоку. Іноді текст з технічних причин розбивався на блоки.
  • CAN, 18 - Cancel, скасування (того, що було передано раніше).
  • EM, 19 - End of Medium, скінчилася перфострічка і т. д.
  • SUB, 1A - Substitute, підставити. Ставиться на місці символу, значення якого було втрачено або зіпсовано при передачі. Зараз Ctrl-Z використовується як кінець файлу введений із клавіатури в системах DOS і Windows. У цієї функції немає ніякої очевидного зв'язку з символом SUB.
  • ESC, 1B - Escape. Наступні символи - щось спеціальне.
  • FS, 1C - File Separator, роздільник файлів.
  • GS, 1D - Group Separator, роздільник груп.
  • RS, 1E - Record Separator, роздільник записів.
  • US, 1F - Unit Separator, роздільник юнітів. Тобто підтримувалось 4 рівня структуризації даних: повідомлення могло складатися з файлів, файли з груп, групи із записів, записи з юнітів.
  • DEL, 7F - Delete, стерти останній символ. Символом DEL, що складається в двійковому коді з усіх одиниць, можна було забити будь-який символ. Пристрої та програми ігнорували DEL так само, як NUL. Код цього символу відбувається з перших текстових процесорів з пам'яттю на перфострічці : у них видалення символу відбувалося забиванням його коду дірочками (значив логічні одиниці).

5. Структурні властивості таблиці

  • Цифри 0-9 представляються своїми двійковими значеннями (наприклад, 5 = 0101 2), перед якими стоїть 0011 2. Таким чином, двійково-десяткові числа (BCD) перетворюються в ASCII-рядок за допомогою простого додавання ліворуч 0011 2 до кожного двійково-десятковому напівбайт.
  • Літери AZ верхнього і нижнього регістрів розрізняються в своєму поданні тільки одним бітом, що спрощує перетворення регістра і перевірку на діапазон. Літери представляються своїми порядковими номерами в алфавіті, записаними в 2-ічной системі числення, перед якими стоїть 100 2 (для букв верхнього регістру) або 110 2 (для літер нижнього регістру).

6. Подання ASCII в ЕОМ

На переважній більшості сучасних комп'ютерів мінімально адресуемая одиниця пам'яті - 8-бітний байт, тому там використовуються 8-бітові, а не 7-бітні символи. Зазвичай символ ASCII розширюють до 8 біт, просто доданий один нульовий біт в якості старшого.

На комп'ютерах системи IBM/360, проте, у разі використання ASCII застосовувався інший метод: 6-й біт (якщо вважати самий молодший біт першим) переміщається в 7-й, а колишній 7-й "роздвоюється" і копіюється і в 8-й біт, і в 6-й. Виходить така таблиця [1] :

.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. DC 0 DC 1 DC 2 DC 3 DC 4 ERR SYNC LEM S 0 S 1 S 2 S 3 S 4 S 5 S 6 S 7
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 девятібітних символу.


7. Примітка

  1. G. M. Amdahl, G. A. Blaauw, F. P. Brooks, Jr. Architecture of the IBM System/360, 1964

Цей текст може містити помилки.

Схожі роботи | скачати

Схожі роботи:
ASCII-графіка
© Усі права захищені
написати до нас
Рейтинг@Mail.ru