Che importanza ha se un personaggio è 8 bit o 16 bit o 32 bit

3

Bene, sto leggendo Programmazione di Windows con MFC e mi sono imbattuto in caratteri in codice Unicode e ASCII. Ho capito il punto di utilizzo di Unicode su ASCII, ma quello che non capisco è come e perché è importante usare caratteri a 8 bit / 16 bit / 32 bit? Che bene fa al sistema? Come si differenzia l'elaborazione del sistema operativo per diversi bit di carattere.

La mia domanda qui è, cosa significa per un personaggio quando è un carattere x-bit?

    
posta vin 23.07.2012 - 13:40
fonte

3 risposte

8

Si riferisce alla quantità di possibili lettere / numeri / simboli che un set di caratteri può avere. Un carattere a 8 bit può avere solo 256 possibili caratteri. Mentre un 16 bit può avere 65.536. Un personaggio a 32 bit può avere 4.294.967.296 possibili caratteri. Un set di caratteri così grande dovrebbe essere in grado di memorizzare ogni possibile personaggio nel mondo. Mentre un set di caratteri a 8 bit può memorizzare solo caratteri sufficienti per la lingua inglese. I set di caratteri a 8 bit erano lo standard preferito nei primi giorni del calcolo in cui la memoria era misurata in bit e in alcuni casi, KB. Ma con i computer con processori multi-core e concerti di RAM non è più così preoccupante (tranne in alcuni rari casi)

    
risposta data 23.07.2012 - 13:53
fonte
10

Joel Spolsky, co-fondatore di questo sito , in realtà ha un meraviglioso e breve articolo sui set di caratteri intitolato Il minimo assoluto Ogni sviluppatore di software deve assolutamente conoscere positivamente Unicode e Set di caratteri (nessuna scusa!) .

Ho trovato una buona lettura e risponde a molte domande sui diversi set di caratteri che potresti avere, oltre a ripercorrere brevemente i motivi storici dell'intero set di caratteri, comunque.

Non sono sicuro del motivo per cui sei stato respinto; è roba abbastanza utile da sapere!

    
risposta data 23.07.2012 - 16:01
fonte
2

Unicode è logicamente un codice a 21 bit. Poiché i computer moderni non funzionano convenientemente con tali unità, ci sono varie soluzioni: usa 32 bit (4 byte), sprecando un sacco di bit, specialmente se i tuoi dati sono prevalentemente in inglese; usa uno schema speciale che usa una o due unità a 16 bit per carattere; e utilizzare un numero variabile di byte da 8 bit per carattere. Queste sono conosciute come codifiche di trasferimento UTF-32, UTF-16 e UTF-8.

Windows utilizza internamente UTF-16, mentre UTF-8 domina per es. sul Web, quindi è spesso necessario convertire tra di loro. Questo non è banale, ma di solito è realizzato con routine di libreria appropriate, forse implicitamente, a seconda dell'ambiente di programmazione. UTF-32 è usato raramente.

Tecnicamente, UTF-16 è molto semplice per tutti i caratteri che si adattano al sottospazio a 16 bit di Unicode, Basic Plilingual Plane (BMP), possibilmente tutti i personaggi che hai mai sentito nominare. UTF-8 è più complesso ma è stato progettato con enfasi occidentale: tutti i caratteri Ascii sono rappresentati come byte singoli in UTF-8, quindi qualsiasi file che contiene Ascii è quasi della stessa dimensione in UTF-8 come in Ascii. Questo è opposto a UTF-16, che usa sempre due byte per carattere Ascii.

    
risposta data 23.07.2012 - 14:04
fonte

Leggi altre domande sui tag