Contenido Checked

Hexadecimal

Temas relacionados: Matemáticas

Antecedentes de las escuelas de Wikipedia

Organizar una selección Wikipedia para las escuelas en el mundo en desarrollo sin acceso a Internet era una iniciativa de SOS Children. El patrocinio de los niños ayuda a los niños en el mundo en desarrollo para aprender también.

En matemáticas y ciencias de la computación , hexadecimal (también basal 16, hexa, o hex) es un sistema de numeración con una radix, o base, de 16. Utiliza dieciséis símbolos distintos, con mayor frecuencia los símbolos 0-9 para representar los valores de cero a nueve, y A, B, C, D, E, F (o A a la F) para representar los valores de diez a los quince años.

Su uso principal es como una representación amistosa humana de binario codificado valores, por lo que a menudo se utiliza en electrónica digital y la ingeniería informática. Dado que cada dígito hexadecimal representa cuatro dígitos binarios ( bits) -también llamados un nibble-it es un compacto y fácilmente traducido taquigrafía para expresar los valores en base dos .

IBM introdujo el sistema hexadecimal actual al mundo de la informática; una versión anterior, utilizando los dígitos 0 - 9 y U - Z, fue introducido en 1956 por el Computadora Bendix G-15.

Usos

0 hexagonales = 0 diciembre = 0 octubre 0 0 0 0
1 hex = 01 de diciembre = 01 de octubre 0 0 0 1
2 hexagonal = 02 de diciembre = 02 de octubre 0 0 1 0
3 hexagonal = 03 de diciembre = 03 de octubre 0 0 1 1
4 hexagonal = 04 de diciembre = 04 de octubre 0 1 0 0
5 hexagonal = 05 de diciembre = 05 de octubre 0 1 0 1
6 hexagonal = 06 de diciembre = 06 de octubre 0 1 1 0
7 hexagonal = 07 de diciembre = 07 de octubre 0 1 1 1
8 hexagonal = 08 de diciembre = 10 de octubre 1 0 0 0
9 hexagonal = 09 de diciembre = 11 de octubre 1 0 0 1
Un hex = 10 de diciembre = 12 de octubre 1 0 1 0
B hexagonal = 11 de diciembre = 13 de octubre 1 0 1 1
C hexagonal = 12 de diciembre = 14 de octubre 1 1 0 0
D hexagonal = 13 de diciembre = 15 de octubre 1 1 0 1
E hexagonal = 14 de diciembre = 16 de octubre 1 1 1 0
F hex = 15 de diciembre = 17 de octubre 1 1 1 1

En la computación digital, hexadecimal se utiliza principalmente para representar bytes. Los intentos de representar a los 256 posibles valores de bytes por otros medios han dado lugar a problemas. Que representa directamente a cada valor de byte es posible con una única representación de caracteres se encuentra con imprimible caracteres de control en el ASCII juego de caracteres. Incluso si un conjunto estándar de caracteres imprimibles se diseñaron para cada valor de byte, ni los usuarios ni hardware de entrada están equipados para manejar 256 personajes únicos. La mayoría hexagonal software de edición muestra cada byte como un solo carácter, pero los caracteres no imprimibles son generalmente sustituido por período o en blanco.

En URLs, todos los caracteres se pueden codificar utilizando hexadecimal. Cada secuencia hexadecimal de 2 dígitos (1 byte) es precedido por un ciento de signos. Por ejemplo, el URL http://en.wikipedia.org/wiki/Main%20Page sustituye un espacio (que no está permitido en las direcciones URL) con el código hexadecimal para un espacio ( %20 ).

En representación hexadecimal

En situaciones donde no hay contexto, un número hexadecimal puede ser ambigua y confusa con números expresados en otras bases. Hay varios convenios para expresar de manera inequívoca los valores. En matemáticas, un subíndice se utiliza a menudo en cada número que da explícitamente la base: 159 10 es decimal 159; 159 16 es hexadecimal 159 que es igual a 345 10. Algunos autores prefieren un subíndice texto, como el 159 y 159 decimal hexadecimal.

En los sistemas de texto lineal, como se usa en la mayoría de entornos de programación de ordenador, una variedad de métodos han surgido:

  • En URLs, códigos de caracteres se escriben como pares hexadecimales con el prefijo % : http://www.example.com/name%20with%20spaces donde %20 es el carácter de espacio (en blanco), código 20 hex, o 32 decimal.
  • En HTML, los caracteres se puede expresar como hexadecimal utilizando la notación ꯍ . Colores de referencia se expresan en hexadecimal con el prefijo # : #FFFFFF que da blanco.
  • El lenguaje de programación C (y sus descendientes) usar el prefijo 0x : 0x5A3 Carácter y de cadena constantes pueden expresar códigos de caracteres en hexadecimal con el prefijo \x seguido de dos dígitos hexadecimales: '\x1B' (especifica el Esc carácter de control), "\x1B[0m\x1B[25;1H" es una cadena que contiene 11 caracteres (sin incluir un NUL trailing implícita). Para dar salida a un valor hexadecimal como con la familia función printf, el formato de código de conversión %X o %x se utiliza.
  • En el Estándar Unicode, un valor de carácter se representa con U+ seguido por el valor hexadecimal: U+20AC es la Símbolo del Euro (€).
  • MIME (extensiones de correo electrónico) caracteres cotizar-imprimible de código dentro de un text/plain MIME-part caracteres ASCII no imprimibles prefijo cuerpo con un igual a firmar = , como en Espa=D1a enviar "España" (España).
  • En Intel derivados de lenguajes ensambladores, hexadecimal se indica con una H o h sufijo: FFh o 0A3CH . Algunas implementaciones requieren un cero cuando el primer carácter no es un dígito: 0FFh
  • Otros lenguajes ensambladores ( 6502, AT & T , Motorola), Pascal, y algunas versiones de BASIC ( Commodore) y Utilizar Forth $ como prefijo: $5A3 .
  • Algunos lenguajes ensambladores (Microchip) utilizan la notación H'ABCD' (por ABCD 16).
  • * nix conchas (UNIX y afines) utilizan un carácter de escape forma \x0FF en expresiones y 0xFF para las constantes.
  • Ada y VHDL encierran números hexadecimales en "citas numéricas" base: 16#5A3#
  • Verilog representa constantes hexadecimales en forma 8'hFF , donde 8 es el número de bits en el valor y FF es la constante hexadecimal.
  • Modula 2 y algunos otros idiomas utilizan # como prefijo: #01AF
  • La Lenguaje de programación Smalltalk utiliza el prefijo 16r : 16r6EF7
  • Posdata indica hexadecimal con el prefijo 16# : 16#ABCD . Los datos binarios (como imagen píxeles) se puede expresar como pares consecutivos sin prefijo hexadecimales: AA213FD51B3801043FBC ...
  • Common Lisp utilizar los prefijos #x y #16r .
  • QBasic y Visual Basic, números hexadecimales con prefijo &H : &H5A3
  • BBC BASIC utiliza & para hexagonal.
  • TI-89 y 92 series utiliza 0h 0hA3 0h 0hA3
  • Anotaciones como X'5A3' se ven a veces, como en PL / I. Este es el formato más común para hexadecimal en mainframes IBM ( zSeries) y minicomputadoras ( iSeries) corriendo tradicionales sistemas operativos (zOS, zVSE, zVM, TPF, OS / 400), y se utiliza en ensamblador, PL / 1, Cobol, JCL, los scripts, comandos y otros lugares. Este formato era común en otros (y ahora obsoletos) los sistemas de IBM también.
  • Donald Knuth introdujo el uso de determinado tipo de letra para representar una raíz particular, en su libro El TeXbook. Allí, representaciones hexadecimales se escriben en una tipografía de máquina de escribir: 5A3
Un hexadecimal tabla de multiplicar

No hay ninguna convención universal de utilizar mayúsculas o minúsculas para los dígitos de letras, y cada uno es prevalente o preferente por ambientes particulares por las normas comunitarias o convención.

La elección de las letras A a F para representar los dígitos por encima de nueve no era universal en la historia temprana de los ordenadores. Durante la década de 1950, algunas instalaciones favorecidas utilizando los dígitos 0 a 5 con un carácter macron ("¯") para indicar los valores de 10 a 15. Los usuarios de Bendix G-15 computadoras utiliza las letras U a la Z.

Representaciones verbales

No sólo no hay dígitos que representan las cantidades de diez a quince letras lo son utilizadas como un sustituto, pero la mayoría Idiomas de Europa occidental también carecen de una nomenclatura para nombrar números hexadecimales. "Thirteen" y "catorce" son decimal basado, y aunque Inglés tiene un nombres para varias potencias no decimales: emparejar por primera binaria poder; anotar por primera poder vigesimal; docena, bruto, y gran bruto para los primeros tres poderes duodecimales. Sin embargo, ningún nombre de Inglés describe los poderes hexadecimal (que corresponde al decimal valora 16, 256, 4096, 65536, ...). Algunas personas leen los números dígito por dígito hexadecimal como un número de teléfono: 4DA es "cuatro-dee-aye". Sin embargo, la letra "A" suena similar a ocho, 'C' suena similar a tres, y 'D' puede ser fácilmente confundido con el sufijo 'ty': ¿Es 4D o cuarenta años? Otras personas a evitar la confusión con la Alfabeto radiofónico: 4DA es "cuatro-delta-alfa". Del mismo modo, algunos utilizan la Ejército Conjunta / azul marino alfabeto fonético ("cuatro-perro-poder"), o un sistema similar ad hoc.

Signos

El sistema hexadecimal puede expresar números negativos de la misma manera como en decimal: -2A para representar -42 y así sucesivamente.

Sin embargo, algunos prefieren en vez de expresar los patrones de bits exactos utilizados en el procesador y considerar los valores hexadecimales mejor manejados como valores sin signo. De esta manera, el número negativo -42 se puede escribir como FFFF FFD6 en un 32-bit Registro de la CPU, como C228 0000 en un 32-bit FPU registrarse o C045 0000 0000 0000 en un registro FPU de 64 bits.

Fracciones

Como con otros sistemas de numeración, el sistema hexadecimal se puede utilizar para representar números racionales , aunque dígitos recurrentes son comunes desde los dieciséis (10h) sólo tiene un factor primordial (dos):

½
=
0.8
=
0.2 A AAAAAAA ... 1/A
=
0.1 9 99999999 ... 1/E
=
0.1 249 249 249 ...
=
0. 5 555555555 ... 1/7
=
0. 249 2492492 ... 1/B
=
0. 1745D 1745D ... 1/F
=
0. 1 111111111 ...
¼
=
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. 13, 13B13B1 ... 1/11
=
0. 0F 0F0F0F0F ...

Para cualquier base, 0,1 (o "1/10") siempre es equivalente a uno dividido por la representación de ese valor de base en su propio sistema de numeración: Contar en base 3 es 0, 1, 2, 10 (tres). Por lo tanto, si dividir uno por dos para binario o dividir uno por dieciséis para hexadecimal, tanto de estas fracciones se escriben como 0.1 . Debido a que el radix 16 es una cuadrado perfecto (4²), fracciones expresadas en hexadecimal tener un período irregular mucho más a menudo que los decimales, y no hay números cíclicos (que no sean de un solo dígito triviales). Dígitos periódicos se exhibió cuando el denominador en su mínima expresión tiene un factor primordial que no se encuentra en la raíz; por lo tanto, cuando se utiliza la notación hexadecimal, todas las fracciones con denominadores que no son una potencia de dos resultado en una cadena infinita de dígitos (por ejemplo, terceras y quintas) recurrentes. Esto hace hexadecimal (y binario) menos conveniente que decimal para representar números racionales desde una mentira mayor proporción fuera de su rango de representación finita.

Todos los números racionales finito representables en hexadecimal son también finito representable en decimal, duodecimal y sexagesimal: es decir, cualquier número hexadecimal con un número finito de dígitos tiene un número finito de dígitos cuando se expresa en esas otras bases. Por el contrario, sólo una fracción de los que un número finito representable en las últimas bases son representables finito en hexadecimal: Es decir, decimales 0.1 corresponde a la representación recurrente infinita 0.199999999999 ... en hexadecimal. Sin embargo, hexadecimal es más eficiente que las bases 12 y 60 para la representación de fracciones con potencias de dos en el denominador (por ejemplo, decimal dieciseisavo es de 0,1 en hexadecimal, 0,09 en duodecimal, 0; 3,45 en sexagesimal y 0,0625 en decimal).

Traducción binaria

La mayoría de los ordenadores manipulan datos binarios, pero es difícil para los seres humanos para trabajar con el gran número de dígitos para incluso un relativamente pequeño número binario. Aunque la mayoría de los seres humanos están familiarizados con el sistema de base 10, es mucho más fácil de mapa binario a hexadecimal que a decimal porque cada uno de los mapas hexadecimales dígitos a un número entero de bits (4 10). En este ejemplo se convierte 1111 2 a la base diez. Dado que cada posición en un número binario puede contener un 1 o 0, su valor puede ser fácilmente determinada por su posición de la derecha:

  • 0001 2 = 1 10
  • 0010 2 = 2 10
  • 0100 2 = 4 10
  • 1000 2 = 8 10

Por lo tanto:

1111 2 = 8 10 + 4 10 + 2 10 + 1 10
= 15 10

Con muy poco práctica, mapeo 1111 2 a F 16 en un solo paso se convierte en fácil: ver tabla en usos . La ventaja de usar hexadecimal en lugar de aumentos decimales rápidamente con el tamaño del número. Cuando el número llega a ser grande, la conversión a decimal es muy tedioso. Sin embargo, al asignar a hexadecimal, es trivial a considerar a la cadena binaria como 4 grupos de dígitos y asignar cada una a un solo dígito hexadecimal.

Este ejemplo muestra la conversión de un número binario a decimal, la cartografía de cada dígito en el valor decimal, y sumando los resultados.

01011110101101010010 2 = 262.144 + 10 65 536 10 32 768 + 10 + 10 + 16 384 8192 2048 10 + 10 + 512 + 10 256 10 64 + 10 + 16 + 10 2 10
= 387 922 10

Compárese esto con la conversión a hexadecimal, donde cada grupo de cuatro dígitos puede ser considerado de forma independiente, y se convierte directamente:

01011110101101010010 2 = 0101   1110   1011   0101   0010 2
Y; nbsp; = 5 E B 5 2 16
= 5EB52 16

La conversión de hexadecimal a binario es igualmente directa.

La sistema octal también puede ser útil como una herramienta para personas que necesitan para tratar directamente con los datos informáticos binarios. Octal representa datos como tres bits por carácter, en lugar de cuatro.

La conversión de otras bases

La suma y la multiplicación

También es posible hacer la conversión mediante la asignación de cada lugar en la base de fuente de la representación hexadecimal de su valor lugar y luego llevar a cabo multiplicación y la suma para obtener la representación final.

Conversión a través binario

Como la mayoría de los ordenadores funcionan en binario, la forma normal de una computadora para tomar tal conversión sería convertir a binario primero (haciendo multiplicación y la suma en binario) y luego hacer uso de la asignación directa de binario a hexadecimal.

Herramientas para la conversión

La mayoría de los sistemas informáticos modernos con interfaces gráficas de usuario proporcionan una utilidad de calculadora integrada, capaz de realizar conversiones entre distintos radixes, en general, incluyendo hexadecimal.

En Microsoft de Windows , el Calculadora de utilidad se puede configurar para el modo de calculadora científica, que permite la conversión entre radix 16 (hexadecimal), 10 (decimal), 8 ( octal) y 2 ( binario ); las bases más comúnmente utilizados por los programadores. En el modo científico, el de la pantalla teclado numérico incluye los dígitos hexadecimales A a F que son activos cuando se selecciona "Hex".

Cultural

Etimología

Fue IBM que decidió en el prefijo de "hexa" en lugar del prefijo latino apropiado de "sexa". La palabra "hexadecimal" Es extraño que en hexa se deriva del griego έξ (hex) para "seis" y decimal se deriva del latín para "décimo". Pudo haber sido derivado de la raíz latina, pero deka griega es tan similar a la de diciem América que algunos no considerar esta nomenclatura inconsistente. Un término más antiguo fue el "sexidecimal" América-como incorrecto (correcto latín es "sedecim" para el 16), pero que fue cambiado debido a que algunas personas consideraron que era demasiado subido de tono, y también tenía un significado alternativo de " base 60 ". Sin embargo, la palabra" sexagesimal "(base 60) conserva el prefijo. La documentación anterior Bendix usa el término" sexadecimal ". Donald Knuth ha señalado que el término etimológicamente correcta es "senidenary", del término latino para "agrupado por 16". (Los términos "binario", "ternario" y "cuaternario" son de la misma construcción América, y el término etimológicamente correcta para la aritmética "decimal" es "denario".) Schwartzman observa que la forma puramente América esperado sería "sexadecimal", pero luego piratas informáticos podrían verse tentados a acortar la palabra al "sexo". Por cierto, el etimológicamente correcta griega plazo sería hexadecadic (aunque en Deca-hexadic griego moderno (δεκαεξαδικός) se utiliza con mayor frecuencia).

Pautas comunes y humor

Hexadecimal se utiliza a veces en los chistes programador porque ciertas palabras se pueden formar usando sólo dígitos hexadecimales. Algunas de estas palabras son "muertos", "carne de vaca", "bebé", y con las sustituciones apropiadas "c0ffee". Dado que estos son rápidamente reconocibles por los programadores, configuraciones de depuración veces inicializar la memoria a ellos para ayudar a los programadores ver cuando algo no se ha inicializado. Algunas personas agregan una H después de un número si quieren demostrar que está escrito en hexadecimal. En mayores de Intel sintaxis asamblea, esto es a veces el caso. " Hexspeak "puede ser el precursor de la moderna jerga web de" 1337speak "

Un ejemplo es el número mágico en archivos FAT Mach-O y programas java, que es " CAFEBABE ". Archivos de una sola arquitectura Mach-O tienen el número "mágico FEEDFACE "en su principio.

La Knuth cheque recompensa es un dólar hexadecimal, o $ 2.56.

La siguiente tabla muestra una broma en hexadecimal:

 3x12 = 36
 2x12 = 24
 1x12 = 12
 0x12 = 18

Los tres primeros se interpretan como la multiplicación, pero en el último señales "0x" interpretación, hexadecimal de 12, que es 18.

0xdeadbeef a veces se pone en la memoria sin inicializar.

Otra broma basado en el uso de una palabra que contiene sólo letras de la primera de seis en el alfabeto (y por tanto los utilizados en hexadecimal) es ...

Si sólo las personas fallecidas entienden hexadecimal, ¿cuántas personas entender hexadecimal?
En este caso, DEAD se refiere a un número hexadecimal (base 10 57 005), no el estado de ya no estar vivo.

Microsoft Windows XP borra sus archivos index.dat bloqueados con los códigos hexadecimales: "0BADF00D".

Dos patrones de bits comunes a menudo empleadas para hardware de prueba son 01010101 y 10101010 (sus valores hexadecimales correspondientes son 55h y Aah, respectivamente). La razón de su uso es alternar entre apagado ('0') para el ('1') o viceversa cuando se cambia entre estos dos patrones. Estos dos valores se utilizan a menudo juntos como firmas en sectores del sistema PC, crítico (por ejemplo, la palabra hexagonal, 0xAA55 que en sistemas little-endian se 55h seguidas por la AAH, deben al final de un válida Master Boot Record).

Sistema de numeración Primaria

Ha habido intentos ocasionales para promover hexadecimal como el sistema de numeración preferido. Estos intentos suelen proponer pronunciación y / o simbología. A veces, la propuesta unifica las medidas estándar de modo que sean múltiplos de 16.

Un ejemplo de las medidas estándar de unificación es Hexadecimal tiempo que subdivide un día por 16, de manera que hay 16 "hexhours" en un día.

Recuperado de " http://en.wikipedia.org/w/index.php?title=Hexadecimal&oldid=199334662 "