Hexad??cimal
Contexte des ??coles Wikip??dia
Arrangeant une s??lection Wikipedia pour les ??coles dans le monde en d??veloppement sans internet ??tait une initiative de SOS Enfants. Parrainage d'enfants aide les enfants du monde en d??veloppement ?? apprendre aussi.
Syst??mes de num??ration par la culture |
---|
|
Syst??mes de positionnement par base |
Decimal (10) |
|
Ternaire ??quilibr?? |
Liste des syst??mes de num??ration |
Dans les math??matiques et l'informatique , hexad??cimale (aussi base- 16, hexa ou hex) est un syst??me num??rique avec un radix, ou une base, de 16. On utilise seize symboles distincts, le plus souvent des symboles 0-9 repr??sentent des valeurs de z??ro ?? neuf, et A, B, C, D, E, F (ou a ?? f) repr??sentent des valeurs de dix ?? quinze.
Son utilisation principale est comme une repr??sentation par un humain de binaire valeurs cod??es, il est souvent utilis?? dans l'??lectronique num??rique et g??nie informatique. Puisque chaque chiffre hexad??cimal repr??sente quatre chiffres binaires ( bits) -??galement appel??s un quartet, ce est un compact et facile ?? traduire raccourci pour exprimer les valeurs de base deux .
IBM introduit le syst??me hexad??cimal actuelle dans le monde de l'informatique; une version ant??rieure, en utilisant les chiffres de 0 ?? 9 et U - Z, a ??t?? introduit en 1956 par le Bendix ordinateur G-15.
Utilisations
0 hex | = | 0 d??cembre | = | 0 octobre | 0 | 0 | 0 | 0 | |||
1 hex | = | 1 d??cembre | = | 1 octobre | 0 | 0 | 0 | 1 | |||
2 hex | = | 2 d??cembre | = | 2 octobre | 0 | 0 | 1 | 0 | |||
3 hex | = | 3 d??cembre | = | 3 octobre | 0 | 0 | 1 | 1 | |||
4 hex | = | 4 d??cembre | = | 4 octobre | 0 | 1 | 0 | 0 | |||
5 hex | = | 5 d??cembre | = | 5 octobre | 0 | 1 | 0 | 1 | |||
6 hex | = | 6 d??cembre | = | 6 octobre | 0 | 1 | 1 | 0 | |||
7 hex | = | 7 d??cembre | = | 7 octobre | 0 | 1 | 1 | 1 | |||
8 hex | = | 8 d??cembre | = | 10 octobre | 1 | 0 | 0 | 0 | |||
9 hex | = | 9 d??cembre | = | 11 octobre | 1 | 0 | 0 | 1 | |||
Un hexagone | = | 10 d??cembre | = | 12 octobre | 1 | 0 | 1 | 0 | |||
B hex | = | 11 d??cembre | = | 13 octobre | 1 | 0 | 1 | 1 | |||
C hex | = | 12 d??cembre | = | 14 octobre | 1 | 1 | 0 | 0 | |||
D hex | = | 13 d??cembre | = | 15 octobre | 1 | 1 | 0 | 1 | |||
E hex | = | 14 d??cembre | = | 16 octobre | 1 | 1 | 1 | 0 | |||
F hex | = | 15 d??cembre | = | 17 octobre | 1 | 1 | 1 | 1 | |||
En calcul num??rique, hexad??cimal est principalement utilis?? pour repr??senter octets. Les tentatives pour repr??senter les 256 valeurs d'octets possibles par d'autres moyens ont conduit ?? des probl??mes. Repr??sentant directement chaque valeur possible d'octets avec une repr??sentation ?? caract??re unique se heurte non imprimable caract??res de contr??le dans l' ASCII jeu de caract??res. M??me si un ensemble standard de caract??res imprimables ont ??t?? con??ues pour chaque valeur d'octet, ni les utilisateurs ni le mat??riel d'entr??e sont ??quip??s pour traiter 256 caract??res uniques. La plupart hex logiciel d'??dition affiche chaque octet comme un seul caract??re, mais les caract??res non-imprimables sont g??n??ralement remplac?? par p??riode ou en blanc.
En URL, tous les caract??res peuvent ??tre cod??es ?? l'aide hexad??cimal. Chaque s??quence hexad??cimal ?? 2 chiffres (1 octet) est pr??c??d?? par un pour cent signe. Par exemple, l'URL http://en.wikipedia.org/wiki/Main%20Page
substitue un espace (qui ne est pas permis dans les URL) avec le code hexad??cimal pour un espace ( %20
).
Hexad??cimaux repr??sentant
Dans les situations o?? il n'y a pas de contexte, un nombre hexad??cimal peut ??tre ambigu et confus avec des nombres exprim??s dans d'autres bases. Il existe plusieurs conventions pour exprimer sans ambigu??t?? les valeurs. En math??matiques, un indice est souvent utilis?? sur chaque num??ro donnant explicitement la base: 159 10 159 est d??cimal; 159 159 16 est hexad??cimal qui est ??gale ?? 10 345. Certains auteurs pr??f??rent un indice de texte, tel que 159 et 159 d??cimal hexad??cimal.
Dans les syst??mes de texte lin??aires, tels que ceux utilis??s dans la plupart des environnements de programmation d'ordinateur, une vari??t?? de m??thodes ont ??t?? soulev??es:
- En URL, codes de caract??res sont ??crits comme des paires hexad??cimaux pr??fixe
%
:http://www.example.com/name%20with%20spaces
o??%20
est l'espace (blanc) caract??re, le code hexad??cimal 20, ou 32 d??cimal. - En HTML, les caract??res peut ??tre exprim??e en utilisant la notation hexad??cimale
ꯍ
. les couleurs de r??f??rence sont exprim??s en hexad??cimal avec le pr??fixe#
:#FFFFFF
qui donne blanc. - Le langage de programmation C (et ses descendants) utiliser le pr??fixe
0x
:0x5A3
constantes de caract??re et cha??ne peuvent exprimer codes de caract??res en hexad??cimal avec le pr??fixe\x
suivi de deux chiffres hexad??cimaux:'\x1B'
(sp??cifie le Esc Caract??re de commande),"\x1B[0m\x1B[25;1H"
est une cha??ne contenant 11 caract??res (sans compter une fuite NUL implicite). Pour une sortie en tant que valeur hexad??cimale avec le printf famille de fonctions, le format code de conversion%X
ou%x
est utilis??. - Dans le Norme Unicode, une valeur de caract??re est repr??sent?? avec
U+
suivie de la valeur hexad??cimale:U+20AC
est le Signe Euro (???). - MIME (extensions e-mail) caract??res cit??-imprimables par code dans un
text/plain MIME-part
pr??fixe du corps des caract??res ASCII non imprimables avec un ??gal ?? signer=
, comme dansEspa=D1a
envoyer "Espa??a" (Espagne). - Dans Intel d??riv??s langages d'assemblage, hexad??cimal est indiqu?? avec un H ou h suffixe:
FFh
ou0A3CH
. Certaines impl??mentations n??cessitent un z??ro lorsque le premier caract??re ne est pas un chiffre:0FFh
- Autres langages d'assemblage ( 6502, AT & T , Motorola), Pascal, et certaines versions de BASIC ( Commodore) et Utiliser Forth
$
comme pr??fixe:$5A3
. - Certains langages d'assemblage (Microchip) utilisent la notation
H'ABCD'
(par ABCD 16). - * nix coquilles (UNIX et connexes) utilisent un caract??re d'??chappement forme
\x0FF
dans les expressions et0xFF
pour les constantes. - Ada et VHDL joindre chiffres hexad??cimaux "citations num??riques" sur la base:
16#5A3#
- Verilog repr??sente constantes hexad??cimaux dans la forme
8'hFF
, o?? 8 est le nombre de bits dans la valeur et FF est la constante hexad??cimale. - Modula 2 et quelques autres langues utilisent # comme pr??fixe:
#01AF
- Le Langage de programmation Smalltalk utilise le pr??fixe
16r
:16r6EF7
- Postscript indique hex avec le pr??fixe
16#
:16#ABCD
. Les donn??es binaires (tels que l'image pixels) peut ??tre exprim?? comme sans pr??fixe paires hexad??cimaux cons??cutifs:AA213FD51B3801043FBC
... - Common Lisp utiliser les pr??fixes
#x
et#16r
. - QBasic et Visual Basic, chiffres hexad??cimaux avec pr??fixe
&H
:&H5A3
- BBC BASIC utilise
&
pour hex. - TI-89 et 92 S??rie utilise
0h 0hA3
0h 0hA3
- Notations telles que
X'5A3'
sont parfois consid??r??s, comme dans PL / I. Ce est le format le plus courant pour hexad??cimal sur des mainframes IBM ( zSeries) et mini-ordinateurs ( iSeries) en cours d'ex??cution traditionnels OS (zOS, zVSE, ZVM, TPF, OS / 400), et est utilis?? en assembleur, PL / 1, Cobol, JCL, scripts, commandes et d'autres endroits. Ce format ??tait commun sur d'autres (et maintenant obsol??tes) syst??mes IBM ainsi. - Donald Knuth introduit l'utilisation de caract??res particuli??re pour repr??senter un radix notamment dans son livre Le TeXbook. L??, repr??sentations hexad??cimaux sont ??crits dans une police de caract??res de machine ?? ??crire: 5A3
Il n'y a pas de convention universelle d'utiliser minuscules ou majuscules pour les lettres chiffres, et chaque est r??pandue ou pr??f??r?? par des environnements particuliers par les normes ou conventions communautaires.
Le choix des lettres A ?? F pour repr??senter les chiffres ci-dessus ne ??tait pas neuf universel dans l'histoire des d??buts de l'informatique. Durant les ann??es 1950, certaines installations favoris??es en utilisant les chiffres de 0 ?? 5 avec un caract??re macron ("??") pour indiquer les valeurs 10-15. Les utilisateurs de Bendix G-15 ordinateurs utilis?? les lettres U ?? Z.
Repr??sentations verbales
Non seulement il ya pas de chiffres pour repr??senter les quantit??s de dix ?? quinze lettres sont donc utilis??s comme un substitut, mais plus Langues d'Europe occidentale manquent ??galement une nomenclature de nommer des nombres hexad??cimaux. ??Treize?? et ??quatorze?? sont d??cimal ?? base, et m??me si l'anglais a un nom pour plusieurs puissances non d??cimales: jumeler pour la premi??re binaire pouvoir; marquer pour la premi??re puissance vig??simal; douzaine, brut, et grande brute pour les trois premiers duod??cimales pouvoirs. Toutefois, aucun nom anglais d??crit les pouvoirs hexad??cimaux (correspondant ?? la d??cimale valeurs 16, 256, 4096, 65536, ...). Certaines personnes lisent nombres hexad??cimaux chiffre par chiffre comme un num??ro de t??l??phone: 4DA est "quatre-dee-aye". Cependant, la lettre ??A?? des sons semblables ?? huit, ??C?? des sons semblables ?? trois, et ??D?? peut facilement ??tre confondu avec le suffixe ??Ty??: Est-ce 4D ou quarante ans? D'autres personnes d'??viter la confusion en utilisant le Alphabet phon??tique de l'OTAN: 4DA est "quatre delta-alpha". De m??me, certains utilisent le Marine conjointe de l'arm??e / alphabet phon??tique (??quatre-dog-mesure"), ou d'un syst??me ad hoc similaire.
Signes
Le syst??me hexad??cimal peut exprimer des nombres n??gatifs de la m??me mani??re que dans d??cimales: -2A pour repr??senter -42 et ainsi de suite.
Cependant, certains pr??f??rent au lieu d'exprimer les motifs de bits exacts utilis??s dans le processeur et tenir compte des valeurs hexad??cimaux mieux trait??es comme des valeurs non sign??es. De cette fa??on, le nombre n??gatif -42 peut ??tre ??crite comme FFFF FFD6 dans un 32-bit registre de CPU, comme C228 0000 dans un 32-bit FPU inscrire ou C045 0000 0000 0000 dans un registre de la FPU 64 bits.
Fractions
Comme pour les autres syst??mes de num??ration, le syst??me hexad??cimal peut ??tre utilis?? pour repr??senter des nombres rationnels , bien chiffres r??currents sont communs depuis seize (10h) ne dispose que d'un facteur premier simple (deux):
?? | 0,8 | ⅙ | 0,2 A AAAAAAA ... | 1/A | 0,1 9 99999999 ... | 1/E | 0,1 249 249 249 ... | ||||
⅓ | 0. 5 555 555 555 ... | 1/7 | 0. 249 2492492 ... | 1/B | 0. 1745D 1745D ... | 1/F | 0. 1 111 111 111 ... | ||||
?? | 0,4 | ⅛ | 0,2 | 1/C | 0,1 5 55555555 ... | 1/10 | 0,1 | ||||
⅕ | 0. 3 333 333 333 ... | 1/9 | 0. 1C7 1C71C71 ... | 1/D | 0. 13B 13B13B1 ... | 1/11 | 0. 0F 0F0F0F0F ... |
Pour ne importe quelle base, 0,1 (ou "10/01") est toujours ??quivalent ?? un divis?? par la repr??sentation de la valeur de base dans son propre syst??me de num??ration: comptage en base 3 est 0, 1, 2, 10 (trois). Ainsi, si une division par deux de binaire ou diviser un par seize pour hexad??cimal, ces deux fractions sont ??crits que 0.1
. ??tant donn?? que la base 16 est un carr?? parfait (4??), fractions exprim??es en hexad??cimal avoir une p??riode bizarre beaucoup plus souvent que d??cimaux, et il ne sont pas num??ros cycliques (autres que les simples chiffres insignifiants). Chiffres r??currents sont expos??es lorsque le d??nominateur en termes plus bas a un premier facteur ne trouve pas dans la base; Ainsi, en utilisant la notation hexad??cimale, toutes les fractions avec des d??nominateurs qui ne sont pas un puissance de deux r??sultat dans une cha??ne infinie de chiffres (comme tiers et cinqui??mes) r??currents. Cela rend hexad??cimale (et binaire) moins pratique que d??cimal pour repr??senter des nombres rationnels depuis une plus grande proportion se situent en dehors de sa gamme de repr??sentation finie.
Tous les nombres rationnels fini repr??sentables en hexad??cimal sont ??galement fini repr??sentable en d??cimal, duodecimal et sexagesimal: ce est-?? ne importe quel nombre hexad??cimal avec un nombre fini de chiffres a un nombre fini de chiffres lorsqu'il est exprim?? dans les autres bases. Inversement, seule une fraction de ceux fini repr??sentable dans les derni??res bases sont repr??sentable fini en hexad??cimal: Ce est, d??cimaux 0,1 correspond ?? l'infini la repr??sentation r??currente ,199999999999 ... en hexad??cimal. Cependant, hexad??cimal est plus efficace que les bases 12 et 60 pour repr??senter les fractions avec des puissances de deux dans le d??nominateur (par exemple, d??cimal seizi??me est de 0,1 en hexad??cimal, 0,09 dans duodecimal, 0; 3,45 en sexag??simal et 0,0625 en d??cimal).
Traduction binaire
La plupart des ordinateurs de manipuler les donn??es binaires, mais il est difficile pour l'homme de travailler avec le grand nombre de chiffres, m??me pour un nombre relativement restreint binaire. Bien que la plupart des humains sont familiers avec le syst??me de base 10, il est beaucoup plus facile de la carte binaire en hexad??cimal ?? d??cimal parce que chaque cartes de chiffres hexad??cimaux ?? un nombre entier de bits (4 10). Cet exemple convertit 1111 2 ?? base dix. ??tant donn?? que chaque position dans un nombre binaire peut contenir soit un 1 ou 0, sa valeur peut ??tre facilement d??termin??e par sa position de la droite:
- 0001 2 = 1 10
- 0010 2 2 10 =
- 0100 2 4 = 10
- 1000 2 8 = 10
Par cons??quent:
1111 2 | = 8 + 10 4 10 + 2 + 10 1 10 |
= 15 10 |
Avec ??tonnamment peu de pratique, la cartographie 1111 2 ?? 16 F en une seule ??tape devient facile: voir tableau en utilisations . L'avantage d'utiliser hexad??cimal plut??t que l'augmentation d??cimaux rapidement avec la taille du nombre. Lorsque le nombre devient grand, la conversion en d??cimal est tr??s fastidieux. Cependant, lors de la cartographie en hexad??cimal, il est trivial de consid??rer la cha??ne binaire que quatre groupes de chiffres et de cartographier chacun ?? un seul chiffre hexad??cimal.
Cet exemple montre la conversion d'un nombre binaire en d??cimal, la cartographie de chaque chiffre ?? la valeur d??cimale, et en additionnant les r??sultats.
01011110101101010010 2 | = 262 144 + 65 536 10 10 + 10 32 768 16 384 + 10 + 10 + 8192 + 2048 10 512 10 256 + 10 + 64 + 10 + 16 10 2 10 |
= 387 922 10 |
Comparez cela ?? la conversion en hexad??cimal, o?? chaque groupe de quatre chiffres peut ??tre consid??r?? ind??pendamment et directement converti:
01011110101101010010 2 | = | 0101 | 1110 | 1011 | 0101 | 0010 2 |
&; Nbsp; | = | 5 | E | B | 5 | 2 16 |
= | 5EB52 16 |
La conversion hexad??cimal en binaire est tout aussi directe.
Le syst??me octal peut aussi ??tre utile comme outil pour les personnes qui ont besoin de traiter directement avec les donn??es informatiques binaires. Octal repr??sente les donn??es que trois bits par caract??re, plut??t que quatre.
Conversion ?? partir d'autres bases
Addition et la multiplication
Il est ??galement possible de faire la conversion en attribuant ?? chaque lieu dans la base source la repr??sentation hexad??cimale de sa place de valeur et en effectuant ensuite multiplication et d'addition pour obtenir la repr??sentation finale.
Conversion via binaire
Comme la plupart des ordinateurs fonctionnent en binaire, la voie normale pour un ordinateur pour faire une telle conversion serait de convertir d'abord binaire (en faisant multiplication et l'addition en binaire), puis faire usage de la cartographie directe de binaire en hexad??cimal.
Outils de conversion
La plupart des syst??mes informatiques modernes avec interfaces utilisateur graphiques fournissent un utilitaire de calculatrice int??gr??e, capable d'effectuer des conversions entre les diff??rentes grandes bases, y compris g??n??ralement hexad??cimal.
Dans Microsoft de Windows , le Calculateur utilitaire peut ??tre r??gl?? pour mode calculatrice scientifique, qui permet des conversions entre radix 16 (hexad??cimal), 10 (d??cimal), 8 ( octal) et 2 ( binaire ); les bases les plus couramment utilis??s par les programmeurs. En mode scientifique, le sur l'??cran pav?? num??rique comprend le chiffres hexad??cimaux A ?? F qui sont actifs lorsque "Hex" est s??lectionn??.
Culturel
??tymologie
Ce est IBM qui a d??cid?? sur le pr??fixe "hexa" plut??t que le pr??fixe latin correcte de "sexa". Le mot "hexad??cimal" est ??trange que hexa est d??riv?? du grec έξ (hex) pour "six" et la d??cimale est d??riv?? du latin pour ??dixi??me??. Il peut avoir ??t?? d??riv?? de la racine latine, mais deka grecque est si semblable ?? la decem latine que certains ne consid??raient pas cette nomenclature incompatibles. Un terme plus ancien ??tait le "sexidecimal" latine comme incorrect (latin correct est "sedecim" 16), mais qui a ??t?? chang?? parce que certaines personnes pensaient que ce ??tait trop os??e, et il y avait aussi un autre sens de " base 60 ". Cependant, le mot" sexag??simal "(base 60) conserve le pr??fixe. La documentation t??t Bendix a utilis?? le terme" sexadecimal ". Donald Knuth a fait remarquer que le terme correct est ??tymologiquement "senidenary", du terme latin pour "regroup??es par 16". (Les termes "binaire", "ternaire" et "quaternaire" sont de la m??me construction latine, et le terme ??tymologiquement correct pour "virgule" arithm??tique est "denier".) Schwartzman note que la forme purement latine attendu serait "sexadecimal", mais les pirates informatiques seraient tent??s de raccourcir le mot ??sexe??. Par ailleurs, le ??tymologiquement bon grec terme serait hexadecadic (bien que dans Moderne d??ca-hexadique grec (δεκαεξαδικός) est plus couramment utilis??).
Mod??les et l'humour communes
Hexad??cimal est parfois utilis?? dans les blagues de programmeur parce que certains mots peuvent ??tre form??s en utilisant uniquement des chiffres hexad??cimaux. Certains de ces mots sont "morts", "boeuf", "babe", et avec des substitutions appropri??es "c0ffee". Puisque ce sont rapidement reconnaissable par les programmeurs, les configurations de d??bogage initialiser parfois m??moire pour les pour aider les programmeurs voir quand quelque chose n'a pas ??t?? initialis??. Certaines personnes ajoutent un H apr??s un nombre si elles veulent montrer qu'il est ??crit en hexad??cimal. En plus Intel la syntaxe d'assemblage, ce est parfois le cas. " Hexspeak "peut ??tre le pr??curseur du langage web moderne" 1337speak "
Un exemple est le nombre magique dans les fichiers FAT Mach-O et programmes de Java, qui est " CAFEBABE
". Fichiers unique architecture Mach-O ont un nombre magique " FEEDFACE
"?? leur d??but.
Un Knuth ch??que de r??compense est un dollar hexad??cimale, ou $ 2,56.
Le tableau suivant montre une blague en hexad??cimal:
3x12 = 36 2x12 = 24 1x12 = 12 0x12 = 18
Les trois premiers sont interpr??t??s comme la multiplication, mais dans le dernier, les signaux "0x" interpr??tation hexad??cimal de 12 ans, qui est de 18.
0xdeadbeef est parfois mis en m??moire non initialis??e.
Une autre blague bas??e sur l'utilisation d'un mot contenant seulement des caract??res de la premi??re six dans l'alphabet (et donc celles utilis??es en hexad??cimal) est ...
- Si seulement les gens comprennent DEAD hexad??cimal, combien de personnes comprendre hexad??cimal?
- Dans ce cas, DEAD se r??f??re ?? un nombre hexad??cimal (base 57 005 10), pas l'??tat de ne plus ??tre en vie.
Microsoft Windows XP efface ses fichiers index.dat verrouill??s avec les codes hexad??cimaux: "0BADF00D".
Deux motifs de bits communs souvent utilis??s pour le mat??riel de test sont 01010101
et 10101010
(leurs valeurs hexad??cimales correspondantes sont 55h et AAH, respectivement). La raison de l'utilisation est d'alterner entre au large ("0") pour le ('1') ou vice versa lors de la commutation entre ces deux modes. Ces deux valeurs sont souvent utilis??s ensemble que les signatures dans les secteurs du syst??me de PC critiques (par exemple, le mot hexagonale, 0xAA55
qui, syst??mes little-endian est 55h suivies par AAH, doivent, ?? la fin d'un cours de validit?? Master Boot Record).
Syst??me de nombre primaire
Il ya eu des tentatives occasionnelles pour promouvoir hexad??cimale que le syst??me num??rique pr??f??r??. Ces tentatives proposent g??n??ralement prononciation et / ou symbolique. Parfois, la proposition unifie des mesures standard de sorte qu'ils sont des multiples de 16.
Un exemple de mesures standard d'unification est Temps hexad??cimal qui subdivise un jour de 16 sorte qu'il y ait 16 "" hexhours dans une journ??e.