2013-07-02 23 views
5

Ho provato a Google un po 'di tempo ora per una risposta, perché le entità HTML possono essere compilate in HTML decimale o HTML. Quindi le mie domande sono:Perché HTML decimale e HTML esadecimale?

  • Qual è la differenza tra HTML decimale e HTML esadecimale?
  • Perché ci sono due sistemi per fare la stessa cosa?
+0

Esistono due sistemi perché hex è più naturale da un punto di vista di basso livello (ciascuno dei 3 valori si trova in un intervallo di un byte) e il decimale è più naturale per gli sviluppatori umani. –

+0

più legati alla storia che alla pratica e non abbastanza costruttivi. –

+0

Cosa intendi per 3 valori? Se prendo la lettera araba BEH, la scriverò come decimale HTML: ب o HTML hex: & # x0628 ;. Ci sono più di tre valori qui. – kexxcream

risposta

8

Originariamente, l'HTML era nominalmente basato su SGML, che ha solo riferimenti di carattere decimale. In seguito, l'alternativa esadecimale era added in HTML 4.01 (e presto implementata nei browser), quindi riadattata in SGML nello Web Adaptations Annex.

L'apparente motivo principale per aggiungere l'alternativa esadecimale era che tutti gli standard di codifica e codifica di caratteri moderni, come Unicode, utilizzano la notazione esadecimale per i numeri di codice dei caratteri. La possibilità di fare riferimento a un carattere tramite il suo numero Unicode, scritto nella notazione esadecimale convenzionale, con prefisso &#x e suffisso con ;, aiuta a evitare gli errori che possono sorgere se le persone convertono da notazione esadecimale a decimale.

+0

Grazie per la spiegazione. Sembra promettente, conosci un link che dettagli questo? – kexxcream

0

Ci sono tre radixes utilizzati nelle tecnologie informatiche:

  • binario, radix 2, perché alla fine interi sono array di interruttori, ognuno che può essere attivato (1) o disattivato (0).
  • Ottale, radix 8, perché ogni cifra rappresenta esattamente 3 bit, quindi è facile convertire in binario.
  • Decimale, radice 10, perché gli esseri umani hanno 10 dita e perché siamo cresciuti usando questo radix.
  • Esadecimale, radix 16, perché come ottale è facile da convertire in bit, ma ancora meglio perché 2 cifre esadecimali possono essere espresse esattamente in 1 byte. Se, ad esempio, vedi un valore rgba dato in hex come 0x00ff00ff, puoi vedere immediatamente che rappresenta un verde opaco.

Quindi, per rispondere alla domanda posta, per alcuni di noi hex è il modo naturale di esprimere numeri interi in quanto fornisce una visione più approfondita dello spazio di archiviazione. Per altri è decimale. Ad ognuno o ad ognuna il suo!

Rifinitura con un esempio HTML: potrebbe & 65536; essere un personaggio di utf-16? In esadecimale è facile vedere che la risposta è no, perché è la stessa di & x10000; che ha bisogno di più di 16 bit.

+0

Ottimo esempio e grazie per la risposta. Ma devo ammettere che sono ancora confuso quando si tratta di usare decimale HTML e hex per le lingue. Vedi il mio esempio sopra nei commenti. – kexxcream

+0

@kexxcream, ho terminato con un esempio HTML che potresti trovare più pertinente. –