base 10 ⇒ base 2 ⇒ vero o falso
| 0 | falso |
| 1 | vero |
carattere ⇒ numero ⇒ base 2 ⇒ true/false
| a | ⇒ | 97 | ⇒ | 1100001 |
| b | ⇒ | 98 | ⇒ | 1100010 |
| c | ⇒ | 99 | ⇒ | 1100011 |
programma C
%c stampa come carattere
%d stampa come intero
#include <stdlib.h>
#include <stdio.h>
int main() {
char x, y, z;
x = 'a';
y = 'b';
z = 'c';
printf("stampati come caratteri:\n");
printf("%c\n", x);
printf("%c\n", y);
printf("%c\n", z);
printf("stampati come interi:\n");
printf("%d\n", x);
printf("%d\n", y);
printf("%d\n", z);
return EXIT_SUCCESS;
}
carattere → sette bit
oppure: otto bit con il primo sempre zero
quindi: numeri 0—127
| 0: | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | |
| 10: | LF | VT | FF | CR | SO | SI | DLE | DC1 | DC2 | DC3 | |
| 20: | DC4 | NAK | SYN | ETB | CAN | EM | SUB | ESC | FS | GS | |
| 30: | RS | US | SP | ! | " | # | $ | % | & | ' | |
| 40: | ( | ) | * | + | , | - | . | / | 0 | 1 | |
| 50: | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | |
| 60: | < | = | > | ? | @ | A | B | C | D | E | |
| 70: | F | G | H | I | J | K | L | M | N | O | |
| 80: | P | Q | R | S | T | U | V | W | X | Y | |
| 90: | Z | [ | \ | ] | ^ | _ | ` | a | b | c | |
| 100: | d | e | f | g | h | i | j | k | l | m | |
| 110: | n | o | p | q | r | s | t | u | v | w | |
| 120: | x | y | z | { | | | } | ~ | DEL |
alcuni numeri non sono veri caratteri
alcuni sono ancora usati, altri sono storici
17 e 19 servivano per la trasmissione
era lo scopo principale della codifica ASCII:
This International Standard specifies a set of 128 characters, (control characters and graphic characters such as letters, digits and symbols) with their coded representation. […] This character set is primarily intended for the interchange of information among data processing systems and associated equipment, and within data communication systems.
sette bit = 128 caratteri
non bastano per tutte le lettere accentate (à, è, ò)
i simboli (es. €, ¢)
i caratteri in altri alfabeti (es. Θ, Ђ, ב)
estensioni: ISO-8859-1, unicode
ogni carattere otto bit
il primo può essere uno
invece che sempre zero come in ASCII
otto bit = 256 numeri
primi 0—127 uguali ad ASCII
(inclusi quelli speciali)
altri:
prima metà uguale ad ASCII
seconda metà: altri caratteri
| 0: | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | |
| 10: | LF | VT | FF | CR | SO | SI | DLE | DC1 | DC2 | DC3 | |
| 20: | DC4 | NAK | SYN | ETB | CAN | EM | SUB | ESC | FS | GS | |
| 30: | RS | US | SP | ! | " | # | $ | % | & | ' | |
| 40: | ( | ) | * | + | , | - | . | / | 0 | 1 | |
| 50: | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | |
| 60: | < | = | > | ? | @ | A | B | C | D | E | |
| 70: | F | G | H | I | J | K | L | M | N | O | |
| 80: | P | Q | R | S | T | U | V | W | X | Y | |
| 90: | Z | [ | \ | ] | ^ | _ | ` | a | b | c | |
| 100: | d | e | f | g | h | i | j | k | l | m | |
| 110: | n | o | p | q | r | s | t | u | v | w | |
| 120: | x | y | z | { | | | } | ~ | DEL | |||
| 130: | |||||||||||
| 140: | |||||||||||
| 150: | |||||||||||
| 160: | ¡ | ¢ | £ | ¤ | ¥ | ¦ | § | ¨ | © | ||
| 170: | ª | « | ¬ | | ® | ¯ | ° | ± | ² | ³ | |
| 180: | ´ | µ | ¶ | · | ¸ | ¹ | º | » | ¼ | ½ | |
| 190: | ¾ | ¿ | À | Á | Â | Ã | Ä | Å | Æ | Ç | |
| 200: | È | É | Ê | Ë | Ì | Í | Î | Ï | Ð | Ñ | |
| 210: | Ò | Ó | Ô | Õ | Ö | × | Ø | Ù | Ú | Û | |
| 220: | Ü | Ý | Þ | ß | à | á | â | ã | ä | å | |
| 230: | æ | ç | è | é | ê | ë | ì | í | î | ï | |
| 240: | ð | ñ | ò | ó | ô | õ | ö | ÷ | ø | ù | |
| 250: | ú | û | ü | ý | þ | ÿ |
va bene per alcune lingue:
solo in parte per altre
(es. manca la i senza il punto del turco: "ı")
per niente per altre ancora
ebraico, cinese, …
altre lingue: ISO-8859-2, ISO-8859-2, …
sempre 0—127 come ASCII
ma 128—255 diversi
es. in ISO-8859-9 253 = i senza punto "ı"
(in ISO-8859-1 lo stesso numero era la y con accento acuto)
più di otto bit per ogni carattere
ogni carattere = trentadue bit
esempio: ı = 0x0131 =
00000000 000000000 00000001 00110001
due modi diversi per memorizzare questi 32:
usato in pratica nei programmi moderni
es: "t", "å", "ı", ""
i caratteri sono sequenze di numeri a otto bit
lunghezza della sequenza: da uno a sette numeri
sono sequenze di caratteri
ogni carattere è un numero
vengono memorizzati in sequenza
99 105 97 111 32 116 117 116 116 105 33 0
99=c, 105=i, 97=a, …
spazio=32
fine stringa=0
carattere '0' = numero 48
terminatore di stringa = numero 0
esempio: stringa 'da 0 a 5':
originariamente, comandi per le stampanti:
stringhe: alternative
11 99 105 97 111 32 116 117 116 116 105 33
sono onde di pressione dell'aria
rappresentazione numerica:
suono = sequenza di questi valori
non è uguale all'originale:
fedeltà all'originale = alta frequenza di campionamento + alto numero di bit
indica come generare i suoni (strumenti)
basata su un fatto:
la maggior parte dei colori visibili all'occhio umano si possono considerare un miscuglio di quantità variabili di rosso, verde e blu
esempio:
massimo di rosso, mezzo verde e niente blu
immagine = griglia di quadrettini (pixel)
ogni pixel viene considerato di un colore solo
(= quantità di rosso, verde, blu)
esempio, nel formato ppm:
| Immagine (ingrandita) | Rappresentazione | |||
|---|---|---|---|---|
NERO VERDE BLU VERDE NERO BLU NERO NERO BLU |
P3 3 3 255 0 0 0 0 255 0 0 0 255 0 255 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 100 |
invece dei pixel:
figure geometriche elementari
| Immagine | Rappresentazione | |
|---|---|---|
|
|
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<g style="stroke:#000000;fill:none;">
<polyline points="0,0 100,100" />
<circle cx="80" cy="80" r="40" />
<text x="20" y="80" stroke="#FF0000">abcd</text>
</g>
</svg>
|
origine: in alto a sinistra