ASCII (American Standard Code for Information Interchange) to standard kodowania znaków, który przypisuje liczby całkowite do znaków, takich jak litery, cyfry i znaki interpunkcyjne. Standard ASCII zawiera 128 znaków, z numerami od 0 do 127. Wartości te są przypisane do różnych znaków, w tym liter (zarówno wielkich, jak i małych), cyfr, znaków specjalnych i sterujących.
ASCII
ASCII powstał jako sposób na ujednolicenie sposobu reprezentowania tekstu w komputerach i urządzeniach komunikacyjnych. Historia jego powstania jest związana z rozwojem komputerów i telekomunikacji w latach 60. XX wieku. Przed powstaniem ASCII, różne firmy i organizacje używały różnych kodów do reprezentowania znaków. Na przykład, wczesne komputery używały kodów takich jak EBCDIC (Extended Binary Coded Decimal Interchange Code) opracowany przez IBM, czy różne własne systemy kodowania. Brak standardu powodował problemy z wymianą informacji między różnymi systemami komputerowymi. Potrzebne było jednolite rozwiązanie, które umożliwiłoby komunikację i przetwarzanie danych na różnych platformach.
Tworzenie standardu ASCII
- W 1960 roku, Amerykański Instytut Standardów Narodowych (ANSI) utworzył komitet X3, który miał za zadanie opracowanie standardu dla kodowania znaków. W skład komitetu wchodzili przedstawiciele różnych firm technologicznych, agencji rządowych i uniwersytetów.
- W 1963 roku opublikowano pierwszą wersję standardu ASCII. Standard ten wykorzystywał 7-bitowe kodowanie, co pozwalało na reprezentowanie 128 różnych znaków, w tym liter, cyfr, znaków interpunkcyjnych oraz niektórych znaków kontrolnych.
- W 1967 roku ASCII zostało zaktualizowane i rozszerzone o dodatkowe znaki kontrolne. 7-bitowy system ASCII był jednak ograniczony i nie mógł reprezentować wszystkich potrzebnych znaków, zwłaszcza dla języków innych niż angielski. Dlatego później powstały rozszerzenia, takie jak 8-bitowe kodowanie, które pozwalały na reprezentowanie 256 znaków (np. rozszerzenia ASCII takie jak ISO 8859-1).
Kody ASCII
Kody ASCII szybko stały się standardem w komputerach osobistych i urządzeniach telekomunikacyjnych. Były szeroko stosowane w terminalach komputerowych, drukarkach, modemach i innych urządzeniach komunikacyjnych. Choć współczesne systemy kodowania znaków, takie jak Unicode, znacznie rozszerzyły możliwości reprezentacji znaków, ASCII nadal stanowi podstawę dla wielu z nich. Unicode, na przykład, jest zgodne wstecznie z ASCII, co oznacza, że pierwsze 128 znaków w Unicode jest identyczne z ASCII.
Tablica kodów ASCII od 0 do 127
Dec | Hex | Znak | Opis |
---|---|---|---|
0 | 00 | NULL | Null |
1 | 01 | SOH | Start of Heading |
2 | 02 | STX | Start of Text |
3 | 03 | ETX | End of Text |
4 | 04 | EOT | End of Transmission |
5 | 05 | ENQ | Enquiry |
6 | 06 | ACK | Acknowledge |
7 | 07 | BEL | Bell |
8 | 08 | BS | Backspace |
9 | 09 | TAB | Horizontal Tab |
10 | 0A | LF | Line Feed |
11 | 0B | VT | Vertical Tab |
12 | 0C | FF | Form Feed |
13 | 0D | CR | Carriage Return |
14 | 0E | SO | Shift Out |
15 | 0F | SI | Shift In |
16 | 10 | DLE | Data Link Escape |
17 | 11 | DC1 | Device Control 1 |
18 | 12 | DC2 | Device Control 2 |
19 | 13 | DC3 | Device Control 3 |
20 | 14 | DC4 | Device Control 4 |
21 | 15 | NAK | Negative Acknowledge |
22 | 16 | SYN | Synchronous Idle |
23 | 17 | ETB | End of Block |
24 | 18 | CAN | Cancel |
25 | 19 | EM | End of Medium |
26 | 1A | SUB | Substitute |
27 | 1B | ESC | Escape |
28 | 1C | FS | File Separator |
29 | 1D | GS | Group Separator |
30 | 1E | RS | Record Separator |
31 | 1F | US | Unit Separator |
32 | 20 | SPACE | Space |
33 | 21 | ! | Exclamation Mark |
34 | 22 | " | Quotation Mark |
35 | 23 | # | Hash/Pound Sign |
36 | 24 | $ | Dollar Sign |
37 | 25 | % | Percent Sign |
38 | 26 | & | Ampersand |
39 | 27 | ' | Apostrophe |
40 | 28 | ( | Left Parenthesis |
41 | 29 | ) | Right Parenthesis |
42 | 2A | * | Asterisk |
43 | 2B | + | Plus Sign |
44 | 2C | , | Comma |
45 | 2D | - | Hyphen-Minus |
46 | 2E | . | Period |
47 | 2F | / | Slash |
48 | 30 | 0 | Digit 0 |
49 | 31 | 1 | Digit 1 |
50 | 32 | 2 | Digit 2 |
51 | 33 | 3 | Digit 3 |
52 | 34 | 4 | Digit 4 |
53 | 35 | 5 | Digit 5 |
54 | 36 | 6 | Digit 6 |
55 | 37 | 7 | Digit 7 |
56 | 38 | 8 | Digit 8 |
57 | 39 | 9 | Digit 9 |
58 | 3A | : | Colon |
59 | 3B | ; | Semicolon |
60 | 3C | < | Less-Than Sign |
61 | 3D | = | Equals Sign |
62 | 3E | > | Greater-Than Sign |
63 | 3F | ? | Question Mark |
64 | 40 | @ | Commercial At |
65 | 41 | A | Uppercase A |
66 | 42 | B | Uppercase B |
67 | 43 | C | Uppercase C |
68 | 44 | D | Uppercase D |
69 | 45 | E | Uppercase E |
70 | 46 | F | Uppercase F |
71 | 47 | G | Uppercase G |
72 | 48 | H | Uppercase H |
73 | 49 | I | Uppercase I |
74 | 4A | J | Uppercase J |
75 | 4B | K | Uppercase K |
76 | 4C | L | Uppercase L |
77 | 4D | M | Uppercase M |
78 | 4E | N | Uppercase N |
79 | 4F | O | Uppercase O |
80 | 50 | P | Uppercase P |
81 | 51 | Q | Uppercase Q |
82 | 52 | R | Uppercase R |
83 | 53 | S | Uppercase S |
84 | 54 | T | Uppercase T |
85 | 55 | U | Uppercase U |
86 | 56 | V | Uppercase V |
87 | 57 | W | Uppercase W |
88 | 58 | X | Uppercase X |
89 | 59 | Y | Uppercase Y |
90 | 5A | Z | Uppercase Z |
91 | 5B | [ | Left Square Bracket |
92 | 5C | \ | Backslash |
93 | 5D | ] | Right Square Bracket |
94 | 5E | ^ | Caret |
95 | 5F | _ | Underscore |
96 | 60 | ` | Grave Accent |
97 | 61 | a | Lowercase a |
98 | 62 | b | Lowercase b |
99 | 63 | c | Lowercase c |
100 | 64 | d | Lowercase d |
101 | 65 | e | Lowercase e |
102 | 66 | f | Lowercase f |
103 | 67 | g | Lowercase g |
104 | 68 | h | Lowercase h |
105 | 69 | i | Lowercase i |
106 | 6A | j | Lowercase j |
107 | 6B | k | Lowercase k |
108 | 6C | l | Lowercase l |
109 | 6D | m | Lowercase m |
110 | 6E | n | Lowercase n |
111 | 6F | o | Lowercase o |
112 | 70 | p | Lowercase p |
113 | 71 | q | Lowercase q |
114 | 72 | r | Lowercase r |
115 | 73 | s | Lowercase s |
116 | 74 | t | Lowercase t |
117 | 75 | u | Lowercase u |
118 | 76 | v | Lowercase v |
119 | 77 | w | Lowercase w |
120 | 78 | x | Lowercase x |
121 | 79 | y | Lowercase y |
122 | 7A | z | Lowercase z |
123 | 7B | { | Left Curly Brace |
124 | 7C | | | Vertical Bar |
125 | 7D | } | Right Curly Brace |
126 | 7E | ~ | Tilde |
127 | 7F | DEL | Delete |
To pełna tablica znaków kodu ASCII od 0 do 127. Zawiera ona zarówno znaki kontrolne, jak i znaki drukowalne. Znaki kontrolne są zazwyczaj używane w sterowaniu urządzeniami lub formatowaniem tekstu, natomiast znaki drukowalne obejmują litery, cyfry i różne symbole używane w codziennym pisaniu i programowaniu.
Programy do generowania tablicy kodów ASCII
Każdy z poniższych programów generuje tablicę znaków kodów ASCII od 0 do 127. Można je uruchomić w odpowiednich środowiskach programistycznych dla każdego języka.
Program do generowania tablicy kodów ASCII w Python
def generate_ascii_table():
print(f"{'Decimal':<10} {'Hex':<10} {'Char':<10}")
print('-' * 30)
for i in range(128):
print(f"{i:<10} {hex(i):<10} {chr(i):<10}")
generate_ascii_table()
Program do generowania tablicy kodów ASCII w C++
#include <iostream>
int main() {
for(int i = 0; i < 128; i++) {
std::cout << i << ": " << static_cast<char>(i) << std::endl;
}
return 0;
}
Program do generowania tablicy kodów ASCII w Java
public class AsciiTable {
public static void main(String[] args) {
for(int i = 0; i < 128; i++) {
System.out.println(i + ": " + (char)i);
}
}
}
Program do generowania tablicy kodów ASCII w JavaScript
for (let i = 0; i < 128; i++) {
console.log(i + ": " + String.fromCharCode(i));
}
Program do generowania tablicy kodów ASCII w PHP
<?php
for ($i = 0; $i < 128; $i++) {
echo "$i: " . chr($i) . "\n";
}
?>
Komentarze