Come si usa
- Scegli Codifica per trasformare il testo in numeri decimali, oppure Decodifica per riportare i numeri in testo.
- Digita o incolla l’input, oppure apri un file. Il risultato si aggiorna mentre scrivi.
- Scegli un separatore per i numeri: Spazio, Virgola o Nuova riga.
- Copia i numeri o scaricali come file.
Valori decimali dei byte e codici ASCII
In un computer ogni carattere è memorizzato come uno o più byte, e un byte è semplicemente un numero da 0 a 255. Questo strumento scrive ciascuno di questi numeri nella normale notazione decimale. Per il testo in inglese i numeri sono i noti codici ASCII: le lettere maiuscole vanno da 65 a 90, le minuscole da 97 a 122, le cifre da 0 a 9 da 48 a 57, e lo spazio è 32. I caratteri di controllo stanno sotto il 32, per esempio 10 per l’avanzamento di riga e 13 per il ritorno a capo.
Il risultato è lo stesso elenco che ottieni con ord() in Python o leggendo un Uint8Array in JavaScript, ed è un modo pratico per individuare in una stringa caratteri invisibili, terminatori di riga o un byte order mark.
Un numero per byte, non un unico numero grande
La conversione procede byte per byte: una parola di due lettere diventa due numeri, non un singolo intero. I valori superiori a 127 non compaiono mai in un testo ASCII. In UTF-8 arrivano in sequenze da due a quattro byte che insieme formano un carattere, ed è per questo che una lettera accentata o un carattere cinese producono più numeri. Per avere un valore per carattere nei testi dell’Europa occidentale, scegli ISO-8859-1, dove il valore di ogni byte coincide con il code point Unicode del carattere, oppure Windows-1252.
Per convertire invece un singolo numero da una base all’altra, per esempio 255 in esadecimale, usa il convertitore di basi numeriche. Per vedere gli stessi byte in altre notazioni, prova l’esadecimale o il binario.
Valori decimali dei byte nel codice
# Python
list('Hi'.encode()) # [72, 105]
bytes([72, 105]).decode() # 'Hi'
// JavaScript
[...new TextEncoder().encode('Hi')] // [72, 105]
new TextDecoder().decode(new Uint8Array([72, 105])) // 'Hi'
Specifiche
| Alfabeto | 0-9 |
|---|---|
| Dimensione dell’output | Da 1 a 3 cifre per byte, più i separatori |
| Padding | Nessuno |
| Standard | Valori decimali dei byte |
| Distingue maiuscole/minuscole | No |
Esempi
| Input (UTF-8) | Output |
|---|---|
Hello, World! | 72 101 108 108 111 44 32 87 111 114 108 100 33 |
Base64.is | 66 97 115 101 54 52 46 105 115 |
你好 | 228 189 160 229 165 189 |
Domande frequenti
Qual è il codice ASCII decimale della A?
La A maiuscola è 65 e la a minuscola è 97, sia in ASCII sia in UTF-8. Ogni lettera successiva aggiunge uno, quindi la Z è 90 e la z è 122.
Posso decodificare numeri decimali senza separatori?
No. Una sequenza di cifre come 72105 si potrebbe suddividere in più modi, quindi il decodificatore ha bisogno di numeri separati da spazi, virgole, punti e virgola o interruzioni di riga. Gli zeri iniziali sono ammessi.
Perché i numeri superiori a 255 danno errore?
Un byte contiene valori da 0 a 255. I numeri più grandi, come il code point Unicode 8364 del simbolo dell’euro, non sono valori di byte. Digita il carattere stesso e codificalo per vederne i byte, per esempio in UTF-8.
Perché un carattere diventa più numeri?
UTF-8 memorizza i caratteri al di fuori dell’ASCII come due, tre o quattro byte, e ogni byte diventa un numero a sé. Se ti serve un numero per ogni carattere dell’Europa occidentale, scegli un set di caratteri a byte singolo come Windows-1252.