Esercizi rappresentazione del testo
Esercizio1: Converti in binario "? - Mi presti 10€ Giò? ?? " con le 2 codifiche unicode:
Nota: Al posto dal simbolo ? ci dovrebbe essere un simbolo cinese e al posto di ?? c'è un simbolo cinese antico.
UTF-8
| Carattere | Esadecimale UTF-8 |
| ? | E6 BC A2 |
| M | 4D |
| i | 69 |
| (spazio) | 20 |
| p | 70 |
| r | 72 |
| e | 65 |
| s | 73 |
| t | 74 |
| i | 69 |
| (spazio) | 20 |
| 1 | 31 |
| 0 | 30 |
| € | E2 82 AC |
| (spazio) | 20 |
| G | 47 |
| i | 69 |
| ò | C3 B2 |
| ? | 3F |
| ?? | F0 A0 80 80 |
Nella tabella, ogni carattere è associato al suo codice esadecimale equivalente in UTF-8.
Alcuni caratteri, come "?", "€", "ò", e "??", sono rappresentati da più byte in UTF-8, e quindi hanno codici esadecimali più lunghi.
Svolgimento:
1. ?
Codifica UTF-8:
- E6:
11100110 - BC:
10111100 - A2:
10100010
2. Mi presti 10€ Giò?
- M:
01001101 - i:
01101001 - (spazio):
00100000 - p:
01110000 - r:
01110010 - e:
01100101 - s:
01110011 - t:
01110100 - i:
01101001 - (spazio):
00100000 - 1:
00110001 - 0:
00110000 - €:
11100010 10000010 10101100 - (spazio):
00100000 - G:
01000111 - i:
01101001 - ò:
11000011 10110010 - ?:
00111111
3. ??
- Codifica UTF-8: 11110000101000001000000010000000
Concatenando tutti i vari bit si ottiene una codifica UFT-8
UTF-32
In UTF-32, ogni carattere è rappresentato da 4 byte (32 bit). Ecco la codifica UTF-32 della tua frase "? Mi presti 10€ Giò? ??":
- ?:
00004E2D - M:
0000004D - i:
00000069 - spazio:
00000020 - p:
00000070 - r:
00000072 - e:
00000065 - s:
00000073 - t:
00000074 - i:
00000069 - spazio:
00000020 - 1:
00000031 - 0:
00000030 - €:
000020AC - spazio:
00000020 - G:
00000047 - i:
00000069 - ò:
000000F2 - ?:
0000003F - ??:
00020080
Ogni carattere è rappresentato da un codice esadecimale di 4 byte. In UTF-32, la codifica è più diretta rispetto a UTF-8, poiché ogni carattere ha una lunghezza fissa di 32 bit.
Esercizio2: Converti da binario in uft-8
1100001110110001010000101110011010111100101000101111000010000000100000001000000001000001
Ricordiamo la regola generale:
-
Byte singolo (ASCII): I caratteri che rientrano nel range ASCII (0-127) vengono codificati con un solo byte. Questo byte inizia sempre con lo 0 di bit di alto ordine. 0xxxxxxx
-
2 Byte: Se un carattere richiede due byte in UTF-8, il primo byte inizierà con 110, e il secondo byte inizierà con 10. 110xxxxx 10xxxxxx
-
3 Byte: Per i caratteri che richiedono tre byte, il primo byte inizia con 1110, e i due byte successivi iniziano entrambi con 10. 1110xxxx 10xxxxxx 10xxxxxx
-
4 Byte: Infine, i caratteri che richiedono quattro byte avranno il primo byte che inizia con 11110, seguito da tre byte che iniziano tutti con 10. 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
| Simbolo | Binario | UTF-8 |
| A (1) | 01000001 | 41 |
| B (2) | 01000010 | 42 |
| ñ (3) | 11000011 10110001 | C3 B1 |
| ? (4) | 11100110 10111100 10100010 | E6 BC A2 |
| ?? (5) | 11110000 10000000 10000000 10000000 | F0 80 80 80 |