ASCII (произнася се az-kee или ass-key, ако сте американец) е стандартна таблица със символи, използвана от компютри и електронни устройства за представяне на текст. Името идва от абревиатурата American Standard Code for Information Interchange (Американски стандартен код за обмен на информация). ASCII е разработен в началото на 60‑те години на XX в. и се базира на по‑ранни кодове, използвани от телеграфните системи; първоначалният стандарт е публикуван от Американската асоциация по стандарти (ASA/ANSI).

Стандартният ASCII е 7‑битов код, който дефинира 128 символа (стойности от 0 до 127). От тези 128 символа:

  • 0–31 и 127 са контролни знаци (непечатни), използвани за управление на комуникацията и форматирането на потока от данни — например NUL, BEL, BS, TAB, LF (Line Feed), CR (Carriage Return) и т.н.;
  • 32–126 са печатни символи — интервал, пунктуация, цифри и букви (на латиница): 48–57 са цифрите 0–9, 65–90 големи латински букви (A–Z), 97–122 малки латински букви (a–z).

Битове, байтове и разширения

Макар ASCII да е дефиниран като 7‑битов код, в практиката символите често се съхраняват и предават в 8‑битови байтове. Допълнителният (осми) бит е бил използван исторически като бит за четност във всеки байт, изпратен по сериен порт или модем, за откриване на грешки при шумни връзки. Друг подход е да се използва осмият бит за допълнителни символи — така възникват различни "разширени ASCII" таблици (стойности 128–255), например ISO‑8859‑1 или CP1252, които добавят символи за други езици и графика.

Примери и представяне

Типични примери за представяне на символите:

  • 'A' има десетична стойност 65, шестнадесетична 0x41 и в 7‑битов двоичен вид е 1000001. Когато се съхранява в 8 бита, обикновено се записва като 01000001;
  • 'B' = 66 (0x42), 'C' = 67 (0x43);
  • 'a' = 97, '0' = 48;
  • Интервал (space) = 32; DEL (delete) = 127.

Контролни знаци и съвременна употреба

Контролните знаци са в "лявата колона" на таблиците с ASCII и повечето вече не се използват по първоначалното си предназначение. Важно практическо значение имат всъщност няколко от тях: LF (Line Feed, код 10) и CR (Carriage Return, код 13) се използват за маркиране на край на ред — комбинацията и редът на използване се различават между операционните системи (Unix използва само LF, Windows използва CR+LF). BEL (код 7) е звук, TAB (код 9) е табулация, NUL (код 0) често служи като терминатор в низовете на C и други езици.

ASCII като формат на файлове и граници на възможностите

Когато някой говори за файл или документ в ASCII формат, обикновено има предвид, че той е в обикновен текст — т.е. съдържа само символи от базовия ASCII набор (често кодирани в 7 или 8 бита). ASCII не включва истински контролни знаци за визуално форматиране като удебелен шрифт или курсив; такива ефекти се постигат от по‑високо ниво (форматирани документи, HTML, RTF и др.) или чрез специални кодове/терминални последователности (например ANSI escape кодове за цветове и стилове в терминали).

ASCII и Unicode

ASCII покрива само латинската азбука без диакритични знаци и не съдържа символи за повечето световни езици. Затова през 90‑те години възникна Unicode — широка кодова таблица, която включва всички символи от ASCII като първите 128 кодови точки (съвместимост назад) и добавя хиляди други символи и писмени системи. Днес в повечето приложения и уеб страници предпочитаните кодировки са UTF‑8 (Unicode), което позволява едновременно поддръжка на ASCII и на всички останали символи.

Практически бележки

  • За да разберете ASCII стойностите на символи в програмиране, често се използват функции/операции за преобразуване между символ и число (например в C: (int)'A' → 65).
  • При обмен на данни по стари връзки или хардуер осмият бит и битът за четност са имали значение; при съвременни мрежи основният фокус е на байтовите кодировки (UTF‑8, ISO‑8859‑1 и др.).
  • ASCII остава фундаментален стандарт — много протоколи (HTTP, SMTP, FTP и др.) и формати използват ASCII символи за ключови команди и заглавки.

В обобщение: ASCII е прост и устойчив стандарт за представяне на основния набор от текстови символи в компютрите. Въпреки ограничената си 7‑битова природа, той е основата за по‑късните, по‑богати кодировки и до днес остава важна част от дигиталната инфраструктура.