Capítulo – 4
Sistemas numéricos
Introducción
Es muy común en la programación de recuperación de datos o cualquier otra programación de resolución de problemas de disco manejar los diferentes tipos de sistemas numéricos simultáneamente para realizar una sola tarea o incluso un trabajo muy pequeño, como calcular las ubicaciones específicas de los MBR extendidos en términos de CHS (cilindros, cabezales y sectores) y estas ubicaciones guían al programador a lo largo de la(s) operación(es).
Probablemente, la mayoría de los programadores principiantes se encuentran con el problema o la confusión al convertir diferentes tipos de sistemas numéricos entre sí cuando intentan aprender programación a nivel de sistema basada en lenguaje ensamblador y cuando el uso de los sistemas numéricos binarios y hexadecimales es obligatorio.
En este capítulo, analizaremos muchos conceptos importantes, incluidos los sistemas de numeración binarios, decimales y hexadecimales, así como la organización de datos binarios, como la conversión de bits, nibbles, bytes, palabras y palabras dobles, etc. y muchos otros temas relacionados. de sistemas numéricos.
La mayoría de los sistemas informáticos modernos no representan valores numéricos mediante el sistema decimal, pero generalmente utilizan un sistema de numeración binario o en complemento a 2.
Hay cuatro bases numéricas comúnmente utilizadas en programación, Binario, Octal, Decimal y Hexadecimal. Sin embargo, la mayor parte del tiempo nos encontraremos con sistemas numéricos binarios, decimales y hexadecimales. Estos sistemas numéricos se han diferenciado según su número base.
Cada sistema de numeración tiene su propio número base y símbolo de representación. He presentado estos cuatro números en la siguiente tabla:
Nombre del sistema numérico |
Número base |
Símbolo utilizado para representación |
Binario |
2 |
B |
octales |
8 |
Q or O |
Decimal |
10 |
D or None |
Hexadecimal |
16 |
H |
Sistema de números decimales
El Sistema Numérico Decimal usa la base 10 e incluye los dígitos del 0 al 9. No te confundas, es el sistema numérico común que usamos en nuestra vida diaria para calcular las cosas. Los valores ponderados de las potencias para cada puesto serán los siguientes:
De esta forma si tengo un número decimal 218 y lo quiero representar de la forma anterior el número 218 se representará de la siguiente forma:
2 * 102 + 1 * 101 + 8 * 100
= 2 * 100 + 1 * 10 + 8 * 1
= 200 + 10 + 8
= 218
Ahora tomemos un ejemplo de cualquier número decimal fraccionario. Tengamos un número 821.128. Cada dígito que aparece a la izquierda del punto decimal representa un valor entre cero y nueve y la potencia de diez está representada por su posición en el número (a partir de 0).
Los dígitos que aparecen a la derecha del punto decimal representan un valor entre cero y nueve veces una potencia negativa creciente de diez. Veamos cómo:
8 * 102 + 2 * 101 + 1 * 100 + 1 * 10-1 + 2 * 10-2 + 8 * 10-3
= 8 * 100 + 2 * 10 + 1 * 1 + 1 * 0.1 + 2 * 0.01 + 8 * 0.001
= 800 + 20 + 1 + 0.1 + 0.02 + 0.008
= 821.128
Sistema de números binarios
Hoy en día, la mayoría de los sistemas informáticos modernos funcionan con lógica binaria. La computadora representa valores usando dos niveles de voltaje que indican APAGADO o ENCENDIDO usando 0 y 1. Por ejemplo, el voltaje 0V generalmente se representa con un 0 lógico y el voltaje de +3,3 V o +5 V se representa con un 1 lógico. Por lo tanto, con dos niveles podemos representar exactamente dos valores diferentes. Estos pueden ser dos valores diferentes, pero por convención usamos los valores 0 y 1.
Dado que existe una correspondencia entre los niveles lógicos utilizados por la computadora y los dos dígitos utilizados en el sistema de numeración binario, no debería sorprender que las computadoras empleen el sistema binario.
El sistema numérico binario funciona como el sistema numérico decimal, excepto que el sistema numérico binario usa la base 2 e incluye solo los dígitos 0 y 1 y el uso de cualquier otro dígito haría que el número fuera un número binario no válido.
Los valores ponderados para cada posición se representan de la siguiente manera:
La siguiente tabla muestra la representación del número binario frente a los números decimales:
Número decimal |
Representación de números binarios |
0 |
0000 |
1 |
0001 |
2 |
0010 |
3 |
0011 |
4 |
0100 |
5 |
0101 |
6 |
0110 |
7 |
0111 |
8 |
1000 |
9 |
1001 |
10 |
1010 |
11 |
1011 |
12 |
1100 |
13 |
1101 |
14 |
1110 |
15 |
1111 |
Por lo general, en el caso de números decimales, cada tres dígitos decimales se separan con una coma para que los números más grandes sean más fáciles de leer. Por ejemplo, es mucho más fácil leer un número 840349823 que 840349823.
Inspirándonos en la misma idea, existe una convención similar para los números binarios, por lo que puede ser más fácil leer los números binarios, pero en el caso de los números binarios agregaremos un espacio cada cuatro dígitos a partir del dígito menos significativo en la izquierda del punto decimal.
Por ejemplo si el valor binario es 1010011001101011, se escribirá como 1010 0110 0110 1011.
Conversión de números binarios a decimales
Para convertir el número binario en número decimal, multiplicamos cada dígito por su posición ponderada y sumamos cada uno de los valores ponderados. Por ejemplo, el valor binario 1011 0101 representa:
1*27 + 0*26 + 1*25 + 1*24 + 0*23 + 1*22 + 0*21 + 1*20
= 1 * 128 + 0 * 64 + 1 * 32 + 1 * 16 + 0 * 8 + 1 * 4 + 0 * 2 + 1 * 1
= 128 + 0 + 32 + 16 + 0 + 4 + 0 + 1
= 181
Conversión de números decimales a binarios
Para convertir cualquier número decimal a su sistema numérico binario el método general es dividir el número decimal entre 2, si el resto es 0, al lado escribe un 0. Si el resto es 1, escribe un 1.
Este proceso se continúa dividiendo el cociente por 2 y eliminando el residuo anterior hasta que el cociente sea 0. Al realizar la división, los residuos que representarán el equivalente binario del número decimal, se escriben comenzando por el dígito menos significativo (derecha) y cada nuevo dígito se escribe en el dígito más significativo (la izquierda) del dígito anterior.
Tomemos un ejemplo. Considere el número 2671. La conversión binaria para el número 2671 se proporciona en la siguiente tabla.
División |
Cociente |
Restante |
Número binario |
2671 / 2 |
1335 |
1 |
1 |
1335 / 2 |
667 |
1 |
11 |
667 / 2 |
333 |
1 |
111 |
333 / 2 |
166 |
1 |
1111 |
166 / 2 |
83 |
0 |
0 1111 |
83 / 2 |
41 |
1 |
10 1111 |
41 / 2 |
20 |
1 |
110 1111 |
20 / 2 |
10 |
0 |
0110 1111 |
10 / 2 |
5 |
0 |
0 0110 1111 |
5 / 2 |
2 |
1 |
10 0110 1111 |
2 / 2 |
1 |
0 |
010 0110 1111 |
1 / 2 |
0 |
1 |
1010 0110 1111 |
Esta tabla es para aclarar cada paso de la conversión; sin embargo, en la práctica y para obtener la facilidad y velocidad de la conversión, puede seguir la siguiente manera para obtener los resultados.
Sea 1980 cualquier número decimal para convertirlo en su equivalente binario. Luego, siguiendo el método dado en la tabla, resolveremos este problema de la siguiente manera:
Cuando ordenamos los residuos según la dirección de la flecha, obtenemos el número binario equivalente al número decimal 1980 = 0111 1011 1100
Formatos de números binarios
Por lo general, escribimos números binarios como una secuencia de bits. Los "bits" son la abreviatura de "dígitos binarios" en una máquina. Hay límites de formato definidos para estos bits. Estos límites de formato se han representado en la siguiente tabla:
Name |
Size in bits |
Example |
Bit |
1 |
1 |
Nibble |
4 |
0101 |
Byte |
8 |
0000 0101 |
Word |
16 |
0000 0000 0000 0101 |
Double Word |
32 |
0000 0000 0000 0000 0000 0000 0000 0101 |
Podemos agregar tantos ceros a la izquierda como deseemos sin cambiar su valor en ninguna base numérica; sin embargo, normalmente agregamos ceros a la izquierda para ajustar el número binario a un límite de tamaño deseado.
Por ejemplo, podemos representar el número 7 como en diferentes casos como se muestra en la tabla:
|
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Bit |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
Nibble |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
1 |
1 |
Byte |
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
Word |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
Donde el bit más a la derecha en un número binario es la posición de bit cero y cada bit a la izquierda recibe el siguiente número de bit sucesivo como se muestra en la tabla anterior.
El bit cero suele denominarse bit menos significativo o LSB y el bit más a la izquierda suele denominarse bit más significativo o MSB. Háganos saber acerca de estos formatos de representación:
El Bit
Un bit es la unidad de datos más pequeña en una computadora binaria. Un solo bit es capaz de representar solo un valor, ya sea 0 o 1. Si está utilizando un bit para representar un valor booleano (verdadero/falso), entonces ese bit representa verdadero o falso.
El Mordisco
El Nibble viene especialmente en el área de interés cuando estamos hablando de los sistemas numéricos, BCD (decimal codificado en binario) y/o números hexadecimales (base 16).
Un nibble es una colección de bits en un límite de 4 bits. Se necesitan cuatro bits para representar un solo dígito BCD o hexadecimal. Con un nibble, podemos representar hasta 16 valores distintos.
En el caso de los números hexadecimales, los valores 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F se representan con cuatro bits. BCD usa diez dígitos diferentes (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) y requiere cuatro bits.
De hecho, cualquier dieciséis valores distintos se pueden representar con un nibble, pero los dígitos hexadecimales y BCD son los elementos principales que podemos representar con un solo nibble. La representación a nivel de bits de nibble será la siguiente:
El Byte
El byte es la estructura de datos más importante utilizada por el microprocesador 80x86. Un byte consta de ocho bits y es el elemento de datos direccionable más pequeño en el microprocesador. La memoria principal y las direcciones de E/S en la computadora son todas direcciones de bytes y, por lo tanto, el elemento más pequeño al que se puede acceder individualmente mediante un programa de microprocesador de 80x86 es un valor de 8 bits.
Para acceder a algo más pequeño, es necesario que lea el byte que contiene los datos y enmascare los bits no deseados. Haremos la programación para hacer esto en los próximos capítulos.
El uso más importante de un byte es contener un código de carácter. Los bits en un byte se numeran desde el bit cero (b0) hasta el siete (b7) como se indica a continuación:
El bit 0 (b0) es el bit de orden inferior o bit menos significativo y el bit 7 (b7) es el bit de orden superior o bit más significativo del byte.
Como aquí vemos que un byte contiene exactamente dos nibbles donde los bits b0 a b3 comprenden el nibble de orden inferior y los bits b4 a b7 forman el nibble de orden superior.
Dado que un byte contiene exactamente dos nibbles, los valores de byte requieren dos dígitos hexadecimales.
Como la computadora moderna tradicional es una máquina direccionable por bytes, resulta más eficiente manipular un byte completo que un bit individual o un nibble.
Esta es la razón por la que la mayoría de los programadores usan un byte completo para representar tipos de datos que no requieren más de 256 elementos
Dado que un byte contiene ocho bits, puede representar 28 o 256 valores diferentes porque el número binario máximo de 8 bits puede ser 1111 1111 que equivale a 256 (decimal), por lo tanto, generalmente se usa un byte para representar lo siguiente:
- valores numéricos sin signo en el rango de 0 a 255
- números con signo en el rango de -128 a +127
- Códigos de caracteres ASCII
- Y otros tipos de datos especiales que no requieren más de 256 valores diferentes, ya que muchos tipos de datos tienen menos de 256 elementos, por lo que ocho bits suelen ser suficientes.
La Palabra
Una palabra es un grupo de 16 bits. Pero tradicionalmente, el límite de una palabra se define como 16 bits o el tamaño del bus de datos para el procesador y una palabra doble son dos palabras. Por lo tanto, una palabra y una palabra doble no tienen un tamaño fijo, sino que varían de un sistema a otro según el procesador. Sin embargo, para la lectura conceptual, definiremos una palabra como dos bytes.
Cuando vemos una palabra en el nivel de bits, se numerará como los bits de una palabra desde el bit cero (b0) hasta el quince (b15). La representación a nivel de bit será la siguiente:
Donde el bit 0 es el LSB (bit menos significativo) y el bit 15 es el MSB (bit más significativo). Cuando es necesario referirse a los otros bits en una palabra, se utiliza su número de posición de bit para referirse a ellos.
De esta manera, una palabra contiene exactamente dos bytes, de modo que desde el bit b0 hasta el bit b7 forman el byte de orden inferior y los bits b8 a b15 forman el byte de orden superior. Con una palabra de 16 bits, podemos representar 216 (65536) valores diferentes. Estos valores pueden ser de los siguientes:
- Los valores numéricos sin signo en el rango de 0 a 65 535.
- Los valores numéricos firmados en el rango de -32 768 a +32 767
- Cualquier tipo de datos con un máximo de 65 536 valores. De esta manera, las palabras se usan principalmente para:
- valores de datos enteros de 16 bits
- direcciones de memoria de 16 bits
- Cualquier sistema numérico que requiera 16 bits o menos
La palabra doble
Una palabra doble está exactamente de acuerdo con su nombre y son dos palabras. Por lo tanto, una cantidad de palabra doble es de 32 bits. La palabra doble también se puede dividir en una palabra de orden superior y una palabra de orden inferior, cuatro bytes u ocho nibbles, etc.
De esta manera, la palabra doble puede representar todo tipo de datos diferentes. Puede ser de los siguientes:
- Una palabra doble sin signo en el rango de 0 a 4,294,967,295,
- Una palabra doble firmada en el rango de -2,147,483,648 a 2,147,483,647,
- Un valor de punto flotante de 32 bits
- O cualquier otro dato que requiera 32 bits o menos.
Sistema de Numeración Octal
El sistema de numeración octal era popular en los sistemas informáticos antiguos, pero hoy en día se usa muy poco. Sin embargo, tomaremos un ideal de Sistema Octal solo por conocimiento.
El sistema Octal se basa en el sistema binario con un límite de 3 bits. El sistema de numeración octal usa la base 8 e incluye solo los dígitos del 0 al 7. De esta manera, cualquier otro dígito haría que el número fuera un número octal no válido.
Los valores ponderados para cada posición son los siguientes que se muestran en la tabla:
(base)power |
85 |
84 |
83 |
82 |
81 |
80 |
Value |
32768 |
4096 |
512 |
64 |
8 |
1 |
Conversión de binario a octal
Para convertir de un número binario entero a octal seguimos los siguientes dos pasos:
Primero divida el número binario en secciones de 3 bits desde el LSB al MSB. Y luego convierta el número binario de 3 bits a su equivalente octal. Pongamos un ejemplo para entenderlo mejor. Si hemos dado cualquier número binario, digamos 11001011010001 para convertirlo en el sistema numérico octal, aplicaremos los dos pasos anteriores en este número de la siguiente manera:
Sección de 3 bits del número binario |
011 |
001 |
011 |
010 |
001 |
número equivalente |
3 |
1 |
3 |
2 |
1 |
Así el Número Octal, Equivalente a El Número Binario 11001011010001 is 31321.
Conversión de octal a binario
Para convertir cualquier número octal entero a su correspondiente número binario seguimos los siguientes dos pasos:
Primero convierta el número decimal a su equivalente binario de 3 bits. Y luego combine las secciones de 3 bits eliminando los espacios. Tomemos un ejemplo. Si tenemos cualquier número octal entero 31321(Q) para convertirlo en su número binario correspondiente, aplicaremos los dos pasos anteriores de la siguiente manera:
número equivalente |
3 |
1 |
3 |
2 |
1 |
Sección de 3 bits del número binario |
011 |
001 |
011 |
010 |
001 |
Así, el equivalente binario del número octal 31321(Q) is 011 0010 1101 0001.
Conversión de octales a decimales
Para convertir cualquier número octal a Decimal, multiplicamos el valor en cada posición por su peso octal y sumamos cada valor.
Tomemos un ejemplo para entender mejor esto. Tengamos cualquier número octal 31321Q para convertirlo en su número decimal correspondiente. Luego seguiremos los siguientes pasos:
3*84 + 1*83 + 3*82 + 2*81 + 1*80
= 3*4096 + 1*512 + 3*64 + 2*8 + 1*1
= 12288 + 512 + 192 + 16 + 1
= 13009
Conversión de decimal a octal
Convertir decimal a octal es un poco más difícil. El método típico para convertir de decimal a octal es la división repetida entre 8. Para este método, dividimos el número decimal entre 8 y escribimos el resto al costado como el dígito menos significativo. Este proceso se continúa dividiendo el cociente por 8 y escribiendo el resto hasta que el cociente sea 0.
Al realizar la división, los residuos que representarán el equivalente octal del número decimal se escriben comenzando por el dígito menos significativo (derecha) y cada nuevo dígito se escribe al siguiente dígito más significativo (la izquierda) del anterior. dígito.
Vamos a entenderlo mejor con un ejemplo. Si tenemos algún número decimal, digamos 13009 (encontramos este número decimal en el ejemplo anterior y al convertirlo de nuevo a número octal también podemos verificar el ejemplo anterior), entonces este método se describe en la siguiente tabla:
División |
Cociente |
Restante |
Número octal |
13009 / 8 |
1626 |
1 |
1 |
1626 / 8 |
203 |
2 |
21 |
203 / 8 |
25 |
3 |
321 |
25 / 8 |
3 |
1 |
1321 |
3 / 8 |
0 |
3 |
31321 |
Como puede ver, volvemos con el número original. Eso es lo que debemos esperar. Esta tabla fue para entender el procedimiento. Ahora repitamos la misma conversión para comprender el método que debe seguirse en la práctica para facilitar el trabajo y ahorrar tiempo. Ambos son las mismas cosas de hecho.
Cuando ordenamos los residuos según la dirección de la flecha, obtenemos el número octal 31321, que esperábamos.
Sistema numérico hexadecimal
Los números hexadecimales se usan más comúnmente en nuestra recuperación de datos o cualquier otro tipo de solución de problemas de disco o programación de análisis de disco porque los números hexadecimales ofrecen las dos características siguientes:
Los números hexadecimales son muy compactos. Y es fácil convertir de hexadecimal a binario y de binario a hexadecimal. Cuando estemos calculando muchas cosas importantes como el número de cilindros, cabezas y sectores de un disco duro o estemos usando programas de edición de disco duro para analizar diferentes características y problemas, necesitaremos un buen conocimiento del sistema hexadecimal. El sistema hexadecimal se basa en el sistema binario que utiliza un límite Nibble o de 4 bits.
El sistema numérico hexadecimal usa la base 16 e incluye solo los dígitos del 0 al 9 y las letras A, B, C, D, E y F. Usamos H con el número para indicar cualquier número hexadecimal. En la siguiente tabla se muestra la representación de varios sistemas numéricos, diferenciándolos entre sí:
Binario |
Octubre |
Decimal |
Hexadecimal |
0000B |
00Q |
00 |
00H |
0001B |
01Q |
01 |
01H |
0010B |
02Q |
02 |
02H |
0011B |
03Q |
03 |
03H |
0100B |
04Q |
04 |
04H |
0101B |
05Q |
05 |
05H |
0110B |
06Q |
06 |
06H |
0111B |
07Q |
07 |
07H |
1000B |
10Q |
08 |
08H |
1001B |
11Q |
09 |
09H |
1010B |
12Q |
10 |
0AH |
1011B |
13Q |
11 |
0BH |
1100B |
14Q |
12 |
0CH |
1101B |
15Q |
13 |
0DH |
1110B |
16Q |
14 |
0EH |
1111B |
17Q |
15 |
0FH |
1 0000B |
20Q |
16 |
10H |
Esta tabla proporciona toda la información que pueda necesitar para convertir de una base numérica a otra para los valores decimales del 0 al 16.
Los valores ponderados para cada posición de los números hexadecimales se muestran en la siguiente tabla:
(Base)power |
163 |
162 |
161 |
160 |
Value |
4096 |
256 |
16 |
1 |
Conversión de binario a hexadecimal
Para convertir un número binario a formato hexadecimal, primero complete el número binario con ceros a la izquierda en el extremo izquierdo para asegurarse de que el número binario contenga múltiplos de cuatro bits. Después de eso, siga los siguientes dos pasos:
Primero, divida el número binario en secciones de 4 bits del LSB al MSB. Y luego convierta el número binario de 4 bits a su equivalente hexadecimal. Tomemos un ejemplo para entender mejor el método. Tengamos cualquier número binario 100 1110 1101 0011 para convertirlo en su número hexadecimal correspondiente. Luego aplicaremos los dos pasos anteriores como se muestra a continuación:
Sección de números binarios de 4 bits |
0100 |
1110 |
1101 |
0011 |
valor hexadecimal |
4 |
E |
D |
3 |
Así, el valor hexadecimal, correspondiente al número binario 100 1110 1101 0011 is 4ED3.
Conversión de hexadecimal a binario
Para convertir un número hexadecimal en un número binario seguimos los siguientes dos pasos:
Primero, convierta el número hexadecimal a su equivalente binario de 4 bits. Y luego combine las secciones de 4 bits eliminando los espacios. Para comprender mejor el procedimiento, tomemos un ejemplo del número hexadecimal anterior, que es 4ED3 y apliquemos estos dos pasos de la siguiente manera
valor hexadecimal |
4 |
E |
D |
3 |
Sección de números binarios de 4 bits |
0100 |
1110 |
1101 |
0011 |
Así, para el número hexadecimal 4ED3, obtenemos el número binario correspondiente = 0100 1110 1101 0011
Esta es la respuesta esperada. Conversión de hexadecimal a decimal Para convertir de hexadecimal a decimal, multiplicamos el valor en cada posición por su peso hexadecimal y sumamos cada valor. Tomemos un ejemplo para entender mejor el procedimiento. Supongamos que tenemos cualquier número hexadecimal 3ABE para convertirlo en su número decimal equivalente. Entonces el procedimiento será el siguiente:
3*163 + A*162 + B*161 + E*160
= 3* 4096 + 10* 256 + 11*16 + 14
= 12288 + 2560 + 176 + 14
= 15038
Por lo tanto, el número decimal equivalente para el número hexadecimal 3ABE is 15038.
Conversión de decimal a hexadecimal
Para convertir decimal a hexadecimal, el método típico es división repetida por 16. Para este método, dividimos el número decimal por 16 y escribimos el resto al costado como el dígito menos significativo.
Este proceso continúa dividiendo el cociente por 16 y escribiendo el resto hasta que el cociente sea 0. Al realizar la división, los restos que representarán el equivalente hexadecimal del número decimal se escriben comenzando por el dígito menos significativo (derecha ) y cada nuevo dígito se escribe en el siguiente dígito más significativo (a la izquierda) del dígito anterior.
Vamos a aprenderlo con el ejemplo. Tomamos el número decimal 15038 que obtuvimos después de la conversión anterior. Con esto también podemos verificar la conversión anterior y viceversa.
División |
Cociente |
Restante |
Número hexadecimal |
15038 / 16 |
939 |
14 (E H) |
E |
939 / 16 |
58 |
11 (B H) |
BE |
58 / 16 |
3 |
10 (A H) |
ABE |
3 / 16 |
0 |
3 (3 H) |
03ABE |
Así obtenemos el número hexadecimal 03ABE H, equivalente al número decimal 15038 y de esta forma volvemos al número original. Eso es lo que debemos esperar.
La siguiente tabla puede ayudar a obtener la búsqueda rápida de conversión de número hexadecimal a número decimal y viceversa desde el rango de 0 a 255 números decimales.
En esta tabla cuadrada hay 16 filas, comenzando de 0 a A y hay 16 columnas que también comienzan de 0 a A. En esta tabla puede encontrar el valor decimal de cualquier número hexadecimal que se encuentre entre el rango de 0H a FFH. Significa que el valor decimal del número debe estar entre el rango de 0 a 255 números decimales.
- Encontrar el valor decimal para el número hexadecimal de la tabla anterior: En la tabla anterior, el número de filas representa el primer dígito hexadecimal (dígito hexadecimal izquierdo) y el número de columnas representa el segundo dígito hexadecimal (dígito hexadecimal derecho) del número hexadecimal.
Tengamos cualquier número hexadecimal, digamos ACH, para convertirlo en el número decimal equivalente. Luego veremos el valor decimal en la columna Cth de la fila Ath en la tabla y obtendremos el valor decimal 172, que es el número decimal equivalente al número hexadecimal ACH.
- Encontrar el valor hexadecimal para el número decimal de la tabla anterior: En la tabla anterior, el número de filas representa el primer dígito hexadecimal (dígito hexadecimal izquierdo) y el número de columnas representa el segundo dígito hexadecimal (dígito hexadecimal derecho) del número hexadecimal por lo tanto, si tiene algún número decimal para convertirlo en un número hexadecimal equivalente, busque el número en la tabla y encuentre el valor hexadecimal equivalente de la siguiente manera:
Valor hexadecimal para el número decimal = (Número de fila)(Número de columna)
Por ejemplo, si desea encontrar el número de valor hexadecimal equivalente para el número decimal 154, consulte la ubicación del número en la tabla. El número 154 está en la novena fila y en la columna Ath de la tabla. Por tanto, el valor hexadecimal equivalente para el número decimal 154 es 9AH.
Código ASCII
La abreviatura ASCII significa Código Estándar Estadounidense para el Intercambio de Información. Es un estándar de codificación para caracteres, números y símbolos que es igual a los primeros 128 caracteres del juego de caracteres ASCII pero difiere de los caracteres restantes. Estos otros caracteres suelen denominarse caracteres ASCII especiales de caracteres extendidos que han sido definidos por IBM.
Los primeros 32 caracteres, que son códigos ASCII del 0 al 1FH, forman un conjunto especial de caracteres no imprimibles. Estos caracteres se denominan caracteres de control porque estos caracteres realizan varias operaciones de control de la impresora y la pantalla en lugar de mostrar símbolos. Estos caracteres se han enumerado en la tabla de caracteres ASCII proporcionada en este capítulo. Estos caracteres de control tienen los siguientes significados:
NUL (Nulo):
Sin carácter. Se utiliza para completar el tiempo o el espacio en la superficie (como la superficie del plato) del dispositivo de almacenamiento donde no hay datos. Usaremos este carácter cuando estemos programando borradores de datos (tanto destructivos como no destructivos) para borrar el espacio no asignado, de modo que nadie ni ningún programa pueda recuperar los datos eliminados.
SOH (Inicio del rumbo):
Este carácter se usa para indicar el comienzo del encabezado, que puede contener información de dirección o ruta.
TX (Inicio de texto):
Este carácter se usa para indicar el inicio del texto y de esta forma también se usa para indicar el final del encabezado.
ETX (fin de texto):
Este carácter se usa para terminar el texto que se inició con STX.
EOT (fin de transmisión):
Este carácter indica el final de la transmisión, que puede haber incluido una o más "pruebas" con sus encabezados.
ENQ (Consulta):
Es una solicitud de respuesta de una estación remota. Es una solicitud para que una estación se identifique.
ACK (Reconocimiento):
Es un carácter, transmitido por un dispositivo receptor como respuesta afirmativa a una lijadora. Se utiliza como respuesta positiva a los mensajes de sondeo.
BEL (Campana):
Se utiliza cuando hay necesidad de llamar la atención humana. Puede controlar dispositivos de alarma o atención. Puede escuchar un tono de campana de los altavoces, conectados a su computadora cuando escribe este carácter en el símbolo del sistema como se indica a continuación:
C:\> Eco ^G
Aquí ^G se imprime mediante la combinación de teclas Ctrl + G.
BS (retroceso):
Este carácter indica el movimiento del mecanismo de impresión o el cursor de la pantalla hacia atrás en una posición.
HT (pestaña horizontal):
Indica el movimiento del mecanismo de impresión o el cursor de la pantalla hacia adelante hasta la siguiente "Tab" preasignada o posición de parada.
LF (salto de línea):
Indica el movimiento del mecanismo de impresión o el cursor de visualización al inicio de la siguiente línea.
VT (pestaña vertical):
Indica el movimiento del mecanismo de impresión o el cursor de la pantalla a la siguiente de una serie de líneas de impresión preasignadas.
FF (fuente de formulario):
Indica el movimiento del mecanismo de impresión o cursor del display a la posición de inicio de la siguiente página, desde, o pantalla.
CR (retorno de carro):
Indica el movimiento del mecanismo de impresión o cursor de visualización a la posición inicial de la misma línea.
SO (desplazamiento hacia fuera):
Indica que las combinaciones de códigos que siguen se interpretarán como fuera del conjunto de caracteres estándar hasta que se alcance un carácter Shift In.
I (cambiar hacia adentro):
Indica que las combinaciones de códigos que siguen se interpretarán de acuerdo con el juego de caracteres estándar.
DLE (Escape de enlace de datos):
Es un carácter que cambiará el significado de uno o más caracteres contiguos. Puede proporcionar un control adicional o permitir el envío de caracteres de datos que tengan cualquier combinación de bits.
DC1, DC2, DC3 y DC4 (controles de dispositivos):
Estos son los caracteres para el control de dispositivos auxiliares o características especiales del terminal.
NAK (reconocimiento negativo):
Es un carácter transmitido por un dispositivo receptor como respuesta negativa a un remitente. Se utiliza como respuesta negativa al mensaje de sondeo.
SYN (sincrónico/ inactivo):
lo utiliza un sistema de transmisión síncrona para lograr la sincronización cuando no se envían datos; un sistema de transmisión síncrona puede enviar caracteres SYN continuamente.
ETB (Fin del bloque de transmisión):
Este carácter indica el final de un bloque de datos con fines de comunicación. Se utiliza para bloquear datos, donde la estructura del bloque no está necesariamente relacionada con el formato de procesamiento.
CAN (Cancelar): Indica que los datos que le preceden en un mensaje o bloque deben descartarse normalmente porque se ha detectado un error.
EM (fin del medio): indica el final físico de una cinta, la superficie (generalmente del plato de un disco) u otro medio o el final de la parte requerida o utilizada del medio.
SUB (Sustituto): Es un sustituto de un carácter que se encuentra erróneo o inválido.
ESC (Escape): Es un carácter destinado a proporcionar extensión de código en el sentido de que le da un significado alternativo a un número específico de caracteres seguidos continuamente.
FS (separador de archivos): este carácter se utiliza como carácter separador de archivos.
GS (Separador de grupos): Se utiliza como carácter separador de grupos.
RS (Record Separator): Se utiliza como carácter separador de registros.
EE. UU. (separador unido):
Es un carácter separador unido.
El segundo grupo de 32 códigos de caracteres ASCII tiene varios símbolos de puntuación, caracteres especiales y dígitos numéricos. Los personajes más notables de este grupo incluyen los siguientes:
carácter de espacio (código ASCII 20H)
dígitos numéricos del 0 al 9 (códigos ASCII 30h a 39h)
simbolos matematicos y logicos
SP (Espacio):
Es un carácter no imprimible que se utiliza para separar palabras o para mover el mecanismo de impresión o para mostrar el cursor una posición hacia adelante.
El tercer grupo de 32 caracteres ASCII es el grupo de caracteres alfabéticos en mayúsculas. Los códigos ASCII para los caracteres de la A a la Z se encuentran en el rango 41H a 5AH. Dado que solo hay 26 caracteres alfabéticos diferentes, los seis códigos restantes contienen varios símbolos especiales.
El cuarto grupo de 32 códigos de caracteres ASCII es el grupo de símbolos alfabéticos en minúsculas, cinco símbolos especiales adicionales y otro carácter de control de eliminación.
DEL (Eliminar):
Se utiliza para eliminar los caracteres no deseados, en lugar de eliminar los caracteres no deseados.
A continuación se muestran dos tablas, que representan los códigos ASCII y los Caracteres Extendidos. La primera tabla representa los cuatro grupos de diferentes tipos de caracteres descritos. Esta tabla es una representación de datos y una tabla ASCII como se muestra a continuación:
Representación de datos y tabla de códigos ASCII:
HEX |
DEC |
CHR |
CTRL |
00 |
0 |
NUL |
^@ |
01 |
1 |
SOH |
^A |
02 |
2 |
STX |
^B |
03 |
3 |
ETX |
^C |
04 |
4 |
EOT |
^D |
05 |
5 |
ENQ |
^E |
06 |
6 |
ACK |
^F |
07 |
7 |
BEL |
^G |
08 |
8 |
BS |
^H |
09 |
9 |
HT |
^I |
0A |
10 |
LF |
^J |
0B |
11 |
VT |
^K |
0C |
12 |
FF |
^L |
0D |
13 |
CR |
^M |
0E |
14 |
SO |
^N |
0F |
15 |
SI |
^O |
10 |
16 |
DLE |
^P |
11 |
17 |
DC1 |
^Q |
12 |
18 |
DC2 |
^R |
13 |
19 |
DC3 |
^S |
14 |
20 |
DC4 |
^T |
15 |
21 |
NAK |
^U |
16 |
22 |
SYN |
^V |
17 |
23 |
ETB |
^W |
18 |
24 |
CAN |
^X |
19 |
25 |
EM |
^Y |
1A |
26 |
SUB |
^Z |
1B |
27 |
ESC |
1C |
28 |
FS |
1D |
29 |
GS |
1E |
30 |
RS |
1F |
31 |
US |
HEX |
DEC |
CHR |
20 |
32 |
SP |
21 |
33 |
! |
22 |
34 |
" |
23 |
35 |
# |
24 |
36 |
$ |
25 |
37 |
% |
26 |
38 |
& |
27 |
39 |
' |
28 |
40 |
( |
29 |
41 |
) |
2A |
42 |
* |
2B |
43 |
+ |
2C |
44 |
, |
2D |
45 |
- |
2E |
46 |
. |
2F |
47 |
/ |
30 |
48 |
0 |
31 |
49 |
1 |
32 |
50 |
2 |
33 |
51 |
3 |
34 |
52 |
4 |
35 |
53 |
5 |
36 |
54 |
6 |
37 |
55 |
7 |
38 |
56 |
8 |
39 |
57 |
9 |
3A |
58 |
: |
3B |
59 |
; |
3C |
60 |
< |
3D |
61 |
= |
3E |
62 |
> |
3F |
63 |
? |
HEX |
DEC |
CHR |
40 |
64 |
@ |
41 |
65 |
A |
42 |
66 |
B |
43 |
67 |
C |
44 |
68 |
D |
45 |
69 |
E |
46 |
70 |
F |
47 |
71 |
G |
48 |
72 |
H |
49 |
73 |
I |
4A |
74 |
J |
4B |
75 |
K |
4C |
76 |
L |
4D |
77 |
M |
4E |
78 |
N |
4F |
79 |
O |
50 |
80 |
P |
51 |
81 |
Q |
52 |
82 |
R |
53 |
83 |
S |
54 |
84 |
T |
55 |
85 |
U |
56 |
86 |
V |
57 |
87 |
W |
58 |
88 |
X |
59 |
89 |
Y |
5A |
90 |
Z |
5B |
91 |
[ |
5C |
92 |
\ |
5D |
93 |
] |
5E |
94 |
^ |
5F |
95 |
_ |
HEX |
DEC |
CHR |
60 |
96 |
` |
61 |
97 |
a |
62 |
98 |
b |
63 |
99 |
c |
64 |
100 |
d |
65 |
101 |
e |
66 |
102 |
f |
67 |
103 |
g |
68 |
104 |
h |
69 |
105 |
i |
6A |
106 |
j |
6B |
107 |
k |
6C |
108 |
l |
6D |
109 |
m |
6E |
110 |
n |
6F |
111 |
o |
70 |
112 |
p |
71 |
113 |
q |
72 |
114 |
r |
73 |
115 |
s |
74 |
116 |
t |
75 |
117 |
u |
76 |
118 |
v |
77 |
119 |
w |
78 |
120 |
x |
79 |
121 |
y |
7A |
122 |
z |
7B |
123 |
{[} |
7C |
124 |
| |
7D |
125 |
} |
7E |
126 |
~ |
7F |
127 |
DEL |
La siguiente tabla muestra el conjunto de 128 caracteres ASCII especiales que a menudo se denominan caracteres ASCII extendidos:
HEX |
DEC |
CHR |
80 |
128 |
Ç |
81 |
129 |
ü |
82 |
130 |
é |
83 |
131 |
â |
84 |
132 |
ä |
85 |
133 |
à |
86 |
134 |
å |
87 |
135 |
ç |
88 |
136 |
ê |
89 |
137 |
ë |
8A |
138 |
è |
8B |
139 |
ï |
8C |
140 |
î |
8D |
141 |
ì |
8E |
142 |
Ä |
8F |
143 |
Å |
90 |
144 |
É |
91 |
145 |
æ |
92 |
146 |
Æ |
93 |
147 |
ô |
94 |
148 |
ö |
95 |
149 |
ò |
96 |
150 |
û |
97 |
151 |
ù |
98 |
152 |
ÿ |
99 |
153 |
Ö |
9A |
154 |
Ü |
9B |
155 |
¢ |
9C |
156 |
£ |
9D |
157 |
¥ |
9E |
158 |
₧ |
9F |
159 |
ƒ |
A0 |
160 |
á |
A1 |
161 |
í |
A2 |
162 |
ó |
A3 |
163 |
ú |
A4 |
164 |
ñ |
HEX |
DEC |
CHR |
A5 |
165 |
Ñ |
A6 |
166 |
ª |
A7 |
167 |
º |
A8 |
168 |
¿ |
A9 |
169 |
⌐ |
AA |
170 |
¬ |
AB |
171 |
½ |
AC |
172 |
¼ |
AD |
173 |
¡ |
AE |
174 |
« |
AF |
175 |
» |
B0 |
176 |
░ |
B1 |
177 |
▒ |
B2 |
178 |
▓ |
B3 |
179 |
│ |
B4 |
180 |
┤ |
B5 |
181 |
╡ |
B6 |
182 |
╢ |
B7 |
183 |
╖ |
B8 |
184 |
╕ |
B9 |
185 |
╣ |
BA |
186 |
║ |
BB |
187 |
╗ |
BC |
188 |
╝ |
BD |
189 |
╜ |
BE |
190 |
╛ |
BF |
191 |
┐ |
C0 |
192 |
└ |
C1 |
193 |
┴ |
C2 |
194 |
┬ |
C3 |
195 |
├ |
C4 |
196 |
─ |
C5 |
197 |
┼ |
C6 |
198 |
╞ |
C7 |
199 |
╟ |
C8 |
200 |
╚ |
C9 |
201 |
╔ |
HEX |
DEC |
CHR |
CA |
202 |
╩ |
CB |
203 |
╦ |
CC |
204 |
╠ |
CD |
205 |
═ |
CE |
206 |
╬ |
CF |
207 |
╧ |
D0 |
208 |
╨ |
D1 |
209 |
╤ |
D2 |
210 |
╥ |
D3 |
211 |
╙ |
D4 |
212 |
╘ |
D5 |
213 |
╒ |
D6 |
214 |
╓ |
D7 |
215 |
╫ |
D8 |
216 |
╪ |
D9 |
217 |
┘ |
DA |
218 |
┌ |
DB |
219 |
█ |
DC |
220 |
▄ |
DD |
221 |
▌ |
DE |
222 |
▐ |
DF |
223 |
▀ |
E0 |
224 |
α |
E1 |
225 |
ß |
E2 |
226 |
Γ |
E3 |
227 |
π |
E4 |
228 |
Σ |
E5 |
229 |
σ |
E6 |
230 |
µ |
E7 |
231 |
τ |
E8 |
232 |
Φ |
E9 |
233 |
Θ |
EA |
234 |
Ω |
EB |
235 |
δ |
EC |
236 |
∞ |
ED |
237 |
φ |
EE |
238 |
Ε |
HEX |
DEC |
CHR |
EF |
239 |
∩ |
F0 |
240 |
≡ |
F1 |
241 |
± |
F2 |
242 |
≥ |
F3 |
243 |
≤ |
F4 |
244 |
⌠ |
F5 |
245 |
⌡ |
F6 |
246 |
÷ |
F7 |
247 |
≈ |
F8 |
248 |
° |
F9 |
249 |
∙ |
FA |
250 |
· |
FB |
251 |
√ |
FC |
252 |
ⁿ |
FD |
253 |
² |
FE |
254 |
■ |
FF |
255 |
|
Algunos términos importantes del sistema numérico, a menudo utilizados para la representación de datos y almacenamiento de datos
La siguiente tabla representa los diversos prefijos que se utilizan como prefijos fraccionarios y como prefijos de aumento:
Byte:
El uso más importante de un byte es contener un código de carácter. Lo hemos discutido anteriormente.
kilobyte
Técnicamente, un kilobyte es 1024 bytes, pero a menudo se usa de forma vaga como sinónimo de 1000 bytes. En sistemas decimales, kilo significa 1000 pero en sistemas binarios un kilo es 1024 (210).
El kilobyte generalmente se representa con K o Kb. Para distinguir entre una K decimal (1000) y una K binaria (1024), el estándar IEEE (Instituto de Ingenieros Eléctricos y Electrónicos) ha sugerido seguir la convención de usar una k minúscula para un kilo decimal y una K mayúscula para un kilo binario. pero esta convención no se sigue estrictamente.
Megabyte
Megabyte se usa para describir el almacenamiento de datos de 1048576 (220) bytes, pero cuando se usa para describir velocidades de transferencia de datos como en MBps, se refiere a un millón de bytes. Megabyte generalmente se abrevia como M o MB.
Gigabyte
Gigabyte se usa para describir el almacenamiento de 1 073 741 824 (230) bytes y un gigabyte equivale a 1024 megabytes. Gigabyte generalmente se abrevia como G o GB.
Terabyte
Terabyte es 1 099 511 627 776 (240) bytes, que es aproximadamente 1 billón de bytes. Terabyte a veces se describe como 1012 (1,000,000,000,000) bytes, que es exactamente un billón.
Petabyte
Petabyte se describe como 1 125 899 906 842 624 (250) bytes. Un petabyte equivale a 1.024 terabytes.
Exabyte
Exabyte se describe como 1 152 921 504 606 846 976 (260) bytes. Un Exabyte equivale a 1.024 Petabytes.
Zettabyte
Zettabyte se describe como 1 180 591 620 717 411 303 424 (270) bytes, que son aproximadamente 1021 (1 000 000 000 000 000 000 000) bytes. Un Zettabyte equivale a 1.024 Exabytes.
Yottabyte
Yottabyte se describe como 1,208,925,819,614,629,174,706,176 (280) bytes, que es aproximadamente 1024 (1,000,000,000,000,000,000,000,000) bytes. Un Yottabyte es igual a 1.024 Zettabytes.
Términos comunes de almacenamiento de datos
Hay varios nombres que se usan para referirse a los términos dados anteriormente, a varios grupos de bits de datos. Algunos de los más utilizados, se han enumerado en la siguiente tabla:
Término |
Número de bits |
Bit / Digit / Flag |
1 |
Nibble / Nybble |
4 |
Byte / Character |
8 |
Word |
16 |
Double Word / Long Word |
32 |
Very Long Word |
64 |
Página modificada el: 06/01/2022