C
Sistemas
numéricos
Objetivos
• Comprender los conceptos acerca de los sistemas numéricos como base, valor posicional y valor simbólico.
• Aprender a trabajar con los números representados en los sistemas numéricos binario, octal y hexadecimal. • Aprender a abreviar los números binarios como octales o
hexadecimales.
• Aprender a convertir los números octales y hexadecimales en binarios.
• Aprender a realizar conversiones hacia y desde números decimales y sus equivalentes en binario, octal y hexadecimal. • Comprender el funcionamiento de la aritmética binaria y la
manera en que se representan los números binarios negativos, utilizando la notación de complemento a dos.
He aquí sólo los números ratificados. William Shakespeare
La naturaleza tiene un cierto tipo de sistema de coordenadas aritméticas-geométricas, ya que cuenta con todo tipo de modelos. Lo que experimentamos de la naturaleza está en los modelos, y todos los modelos de la naturaleza son tan bellos.
Se me ocurrió que el sistema de la naturaleza debe ser una verdadera belleza, porque en la química encontramos que las asociaciones se encuentran siempre en hermosos números enteros; no hay fracciones.
C.1 Introducción
En este apéndice presentaremos los sistemas numéricos clave que utilizan los programadores de Java, especial-mente cuando trabajan en proyectos de software que requieren de una estrecha interacción con el hardware “a nivel de máquina”. Entre los proyectos de este tipo están los sistemas operativos, el software de redes compu-tacionales, los compiladores, sistemas de bases de datos y aplicaciones que requieren de un alto rendimiento.
Cuando escribimos un entero, como 227 o –63, en un programa de Java, se asume que el número está en el sistema numérico decimal (base 10). Los dígitos en el sistema numérico decimal son 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9. El dígito más bajo es el 0 y el más alto es el 9 (uno menos que la base, 10). En su interior, las computado-ras utilizan el sistema numérico binario (base 2). Este sistema numérico sólo tiene dos dígitos: 0 y 1. El dígito más bajo es el 0 y el más alto es el 1 (uno menos que la base, 2).
Como veremos, los números binarios tienden a ser mucho más extensos que sus equivalentes decimales. Los programadores que trabajan con lenguajes ensambladores y en lenguajes de alto nivel como Java, que les permiten llegar hasta el “nivel de máquina”, encuentran que es complicado trabajar con números binarios. Por eso existen otros dos sistemas numéricos, el sistema numérico octal (base 8) y el sistema numérico hexadeci-mal (base 16), que son populares debido a que permiten abreviar los números binarios de una manera conve-niente.
En el sistema numérico octal, los dígitos utilizados son del 0 al 7. Debido a que tanto el sistema numérico binario como el octal tienen menos dígitos que el sistema numérico decimal, sus dígitos son los mismos que sus correspondientes en decimal.
El sistema numérico hexadecimal presenta un problema, ya que requiere de dieciséis dígitos: el dígito más bajo es 0 y el más alto tiene un valor equivalente al 15 decimal (uno menos que la base, 16). Por convención utilizamos las letras de la A a la F para representar los dígitos hexadecimales que corresponden a los valores decimales del 10 al 15. Por lo tanto, en hexadecimal podemos tener números como el 876, que consisten sola-mente de dígitos similares a los decimales; números como 8A55F que consisten de dígitos y letras; y números como FFE que consisten solamente de letras. En ocasiones un número hexadecimal puede coincidir con una palabra común como FACE o FEED (en inglés); esto puede parecer extraño para los programadores acostum-brados a trabajar con números. Los dígitos de los sistemas numéricos binario, octal, decimal y hexadecimal se sintetizan en las figuras C.1 y C.2.
Cada uno de estos sistemas numéricos utilizan la notación posicional: cada posición en la que se escribe un dígito tiene un valor posicional distinto. Por ejemplo, en el número decimal 937 (el 9, el 3 y el 7 se cono-cen como valores simbólicos) decimos que el 7 se escribe en la posición de las unidades; el 3, en la de las de-cenas; y el 9, en la de las centenas. Observe que cada una de estas posiciones es una potencia de la base (10) y que estas potencias empiezan en 0 y aumentan de 1 en 1 a medida que nos desplazamos hacia la izquierda por el número (figura C.3).
Para números decimales más extensos, las siguientes posiciones a la izquierda serían: de millares (10 a la tercera potencia), de decenas de millares (10 a la cuarta potencia), de centenas de millares (10 a la quinta po-tencia), de los millones (10 a la sexta popo-tencia), de decenas de millones (10 a la séptima popo-tencia), y así suce-sivamente.
Plan general
C.1 Introducción
C.2 Abreviatura de los números binarios como números octales y hexadecimales C.3 Conversión de números octales y hexadecimales a binarios
C.4 Conversión de un número binario, octal o hexadecimal a decimal C.5 Conversión de un número decimal a binario, octal o hexadecimal C.6 Números binarios negativos: Notación de complemento a dos
Dígito binario Dígito octal Dígito decimal Dígito hexadecimal
0 0 0 0
1 1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8
9 9
A(valor de 10 en decimal)
B(valor de 11 en decimal)
C(valor de 12 en decimal)
D(valor de 13 en decimal)
E(valor de 14 en decimal)
F(valor de 15 en decimal)
Figura C.1 Dígitos de los sistemas numéricos binario, octal, decimal y hexadecimal.
Atributo Binario Octal Decimal Hexadecimal
Base 2 8 10 16
Dígito más bajo 0 0 0 0
Dígito más alto 1 7 9 F
Figura C.2 Comparación de los sistemas binario, octal, decimal y hexadecimal.
Valores posicionales en el sistema numérico decimal
Dígito decimal 9 3 7
Nombre de la posición Centenas Decenas Unidades
Valor posicional 100 10 1
Valor posicional como 102 101 100
potencia de la base (10)
Figura C.3 Valores posicionales en el sistema numérico decimal.
En el número binario 101 decimos que el 1 más a la derecha se escribe en la posición de los unos, el 0 se escribe en la posición de los dos y el 1 de más a la izquierda se escribe en la posición de los cuatros. Observe que cada una de estas posiciones es una potencia de la base (2) y que estas potencias empiezan en 0 y aumen-tan de 1 en 1 a medida que nos desplazamos hacia la izquierda por el número (figura C.4).
En el número octal 425, decimos que el 5 se escribe en la posición de los unos, el 2 se escribe en la posición de los ochos y el 4 se escribe en la posición de los sesenta y cuatros. Observe que cada una de estas posiciones es una potencia de la base (8) y que estas potencias empiezan en 0 y aumentan de 1 en 1 a medida que nos des-plazamos hacia la izquierda por el número (figura C.5).
Para números octales más extensos, las siguientes posiciones a la izquierda sería la posición de los quinien-tos doces (8 a la tercera potencia), la posición de los cuatro mil noventa y seis (8 a la cuarta potencia), la posi-ción de los treinta y dos mil setecientos sesenta y ochos (8 a la quinta potencia), y así sucesivamente.
En el número hexadecimal 3DA, decimos que la A se escribe en la posición de los unos, la D se escribe en la posición de los dieciséis y el 3 se escribe en la posición de los doscientos cincuenta y seis. Observe que cada una de estas posiciones es una potencia de la base (16) y que estas potencias empiezan en 0 y aumentan de 1 en 1 a medida que nos desplazamos hacia la izquierda por el número (figura C.6).
Para números hexadecimales más extensos, las siguientes posiciones a la izquierda serían la posición de los cuatro mil noventa y seis (16 a la tercera potencia), la posición de los sesenta y cinco mil quinientos treinta y seis (16 a la cuarta potencia), y así sucesivamente.
Valores posicionales en el sistema numérico binario
Dígito binario 1 0 1
Nombre de la posición Cuatros Dos Unos
Valor posicional 4 2 1
Valor posicional como 22 21 20
potencia de la base (2)
Figura C.4 Valores posicionales en el sistema numérico binario.
Valores posicionales en el sistema numérico octal
Dígito octal 4 2 5
Nombre de la posición Sesenta y cuatros Ochos Unos
Valor posicional 64 8 1
Valor posicional como 82 81 80
potencia de la base (8)
Figura C.5 Valores posicionales en el sistema numérico octal.
Valores posicionales en el sistema numérico hexadecimal
Dígito hexadecimal 3 D A
Nombre de la posición Doscientos
cincuenta y seis Dieciséis Unos
Valor posicional 256 6 1
Valor posicional como 162 161 160
potencia de la base (16)
C.2 Abreviatura de los números binarios
como números octales y hexadecimales
En computación, el uso principal de los números octales y hexadecimales es para abreviar representaciones bi-narias demasiado extensas. La figura C.7 muestra que los números binarios extensos pueden expresarse más concisamente en sistemas numéricos con bases mayores que en el sistema numérico binario.
Una relación especialmente importante que tienen tanto el sistema numérico octal como el hexadecimal con el sistema binario es que las bases de los sistemas octal y hexadecimal (8 y 16, respectivamente) son po-tencias de la base del sistema numérico binario (base 2). Considere el siguiente número binario de 12 dígitos y sus equivalentes en octal y hexadecimal. Vea si puede determinar cómo esta relación hace que sea convenien-te el abreviar los números binarios en octal o hexadecimal. La respuesta sigue después de los números.
Número binario Equivalente en octal Equivalente en hexadecimal
100011010001 4321 8D1
Para convertir fácilmente el número binario en octal, sólo divida el número binario de 12 dígitos en gru-pos de tres bits consecutivos y escriba esos grugru-pos por encima de los dígitos correspondientes del número oc-tal, como se muestra a continuación:
100 011 010 001
4 3 2 1
Observe que el dígito octal que escribió debajo de cada grupo de tres bits corresponde precisamente al equivalente octal de ese número binario de 3 dígitos que se muestra en la figura C.7.
El mismo tipo de relación puede observarse al convertir números de binario a hexadecimal. Divida el nú-mero binario de 12 dígitos en grupos de cuatro bits consecutivos y escriba esos grupos por encima de los dígi-tos correspondientes del número hexadecimal, como se muestra a continuación:
1000 1101 0001
8 D 1
Observe que el dígito hexadecimal que escribió debajo de cada grupo de cuatro bits corresponde precisa-mente al equivalente hexadecimal de ese número binario de 4 dígitos que se muestra en la figura C.7.
Número decimal Representación binaria Representación octal Representación hexadecimal
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
C.3 Conversión de números octales y hexadecimales a binarios
En la sección anterior vimos cómo convertir números binarios a sus equivalentes en octal y hexadecimal, for-mando grupos de dígitos binarios y simplemente volviéndolos a escribir como sus valores equivalentes en dí-gitos octales o hexadecimales. Este proceso puede utilizarse en forma inversa para producir el equivalente en binario de un número octal o hexadecimal.
Por ejemplo, el número octal 653 se convierte en binario simplemente escribiendo el 6 como su equivalen-te binario de 3 dígitos 110, el 5 como su equivalenequivalen-te binario de 3 dígitos 101 y el 3 como su equivalenequivalen-te bina-rio de 3 dígitos 011 para formar el número binabina-rio de 9 dígitos 110101011.
El número hexadecimal FDA5 se convierte en binario simplemente escribiendo la F como su equivalente binario de 4 dígitos 1111, la A como su equivalente binario de 4 dígitos 1010, la D como su equivalente bina-rio de 4 dígitos 1101 y el 5 como su equivalente binabina-rio de 4 dígitos 0101, para formar el número binabina-rio de 16 dígitos 1111101011010101.
C.4 Conversión de un número binario, octal o hexadecimal a decimal
Como estamos acostumbrados a trabajar con el sistema decimal, a menudo es conveniente convertir un núme-ro binario, octal o hexadecimal en decimal para tener una idea de lo que “realmente” vale el númenúme-ro. Nuestnúme-ros diagramas en la sección C.1 expresan los valores posicionales en decimal. Para convertir un número en deci-mal desde otra base, multiplique el equivalente en decideci-mal de cada dígito por su valor posicional y sume estos productos. Por ejemplo, el número binario 110101 se convierte en el número 53 decimal, como se muestra en la figura C.8.
Para convertir el número 7614 octal en el número 3980 decimal utilizamos la misma técnica, esta vez uti-lizando los valores posicionales apropiados para el sistema octal, como se muestra en la figura C.9.
Para convertir el número AD3B hexadecimal en el número 44347 decimal utilizamos la misma técnica, es-ta vez empleando los valores posicionales apropiados para el sistema hexadecimal, como se muestra en la fi-gura C.10.
C.5 Conversión de un número decimal a binario, octal o hexadecimal
Las conversiones de la última sección siguen naturalmente las convenciones de la notación posicional. Las con-versiones de decimal a binario, octal o hexadecimal también siguen estas convenciones.
Suponga que queremos convertir el número 57 decimal en binario. Empezamos escribiendo los valores po-sicionales de las columnas de derecha a izquierda, hasta llegar a una columna cuyo valor posicional sea mayor que el número decimal. Como no necesitamos esa columna, podemos descartarla. Por lo tanto, primero escri-bimos:
Valores posicionales: 64 32 16 8 4 2 1
Luego descartamos la columna con el valor posicional de 64, dejando:
Valores posicionales: 32 16 8 4 2 1
A continuación, empezamos a trabajar desde la columna más a la izquierda y nos vamos desplazando ha-cia la derecha. Dividimos 57 entre 32 y observamos que hay un 32 en 57, con un residuo de 25, por lo que
es-Conversión de un número binario en decimal
Valores posicionales: 32 16 8 4 2 1
Valores simbólicos: 1 1 0 1 0 1
Productos: 1*32=32 1*16=16 0*8=0 1*4=4 0*2=0 1*1=1
Suma: = 32 + 16 + 0 + 4 + 0 + 1 = 53
cribimos 1 en la columna de los 32. Dividimos 25 entre 16 y observamos que hay un 16 en 25, con un residuo de 9, por lo que escribimos 1 en la columna de los 16. Dividimos 9 entre 8 y observamos que hay un 8 en 9 con un residuo de 1. Las siguientes dos columnas producen el cociente de cero cuando se divide 1 entre sus va-lores posicionales, por lo que escribimos 0 en las columnas de los 4 y de los 2. Por último, 1 entre 1 es 1, por lo que escribimos 1 en la columna de los 1. Esto nos da:
Valores posicionales: 32 16 8 4 2 1
Valores simbólicos: 1 1 1 0 0 1
y por lo tanto, el 57 decimal es equivalente al 111001 binario.
Para convertir el número decimal 103 en octal, empezamos por escribir los valores posicionales de las co-lumnas hasta llegar a una columna cuyo valor posicional sea mayor que el número decimal. Como no necesi-tamos esa columna, podemos descartarla. Por lo tanto, primero escribimos:
Valores posicionales: 512 64 8 1
Luego descartamos la columna con el valor posicional de 512, lo que nos da:
Valores posicionales: 64 8 1
A continuación, empezamos a trabajar desde la columna más a la izquierda y nos vamos desplazando ha-cia la derecha. Dividimos 103 entre 64 y observamos que hay un 64 en 103 con un residuo de 39, por lo que escribimos 1 en la columna de los 64. Dividimos 39 entre 8 y observamos que el 8 cabe cuatro veces en 39 con un residuo de 7, por lo que escribimos 4 en la columna de los 8. Por último, dividimos 7 entre 1 y observamos que el 1 cabe siete veces en 7 y no hay residuo, por lo que escribimos 7 en la columna de los 1. Esto nos da:
Valores posicionales: 64 8 1
Valores simbólicos: 1 4 7
y por lo tanto, el 103 decimal es equivalente al 147 octal.
Para convertir el número decimal 375 en hexadecimal, empezamos por escribir los valores posicionales de las columnas hasta llegar a una columna cuyo valor posicional sea mayor que el número decimal. Como no ne-cesitamos esa columna, podemos descartarla. Por consecuencia, primero escribimos:
Valores posicionales: 4096 256 16 1
Luego descartamos la columna con el valor posicional de 4096, lo que nos da:
Conversión de un número octal en decimal
Valores posicionales: 512 64 8 1
Valores simbólicos: 7 6 1 4
Productos: 7*512=3584 6*64=384 1*8=8 4*1=4
Suma: = 3584 + 384 + 8 + 4 = 3980
Figura C.9 Conversión de un número octal en decimal.
Conversión de un número hexadecimal en decimal
Valores posicionales: 4096 256 16 1
Valores simbólicos: A D 3 B
Productos: A*4096=40960 D*256=3328 3*16=48 B*1=11
Suma: = 40960 + 3328 + 48 + 11 = 44347
Valores posicionales: 256 16 1
A continuación, empezamos a trabajar desde la columna más a la izquierda y nos vamos desplazando ha-cia la derecha. Dividimos 375 entre 256 y observamos que 256 cabe una vez en 375 con un residuo de 119, por lo que escribimos 1 en la columna de los 256. Dividimos 119 entre 16 y observamos que el 16 cabe siete ve-ces en 119 con un residuo de 7, por lo que escribimos 7 en la columna de los 16. Por último, dividimos 7 en-tre 1 y observamos que el 1 cabe siete veces en 7 y no hay residuo, por lo que escribimos 7 en la columna de los 1. Esto produce:
Valores posicionales: 256 16 1
Valores simbólicos: 1 7 7
y por lo tanto, el 375 decimal es equivalente al 177 hexadecimal.
C.6 Números binarios negativos: Notación de complemento a dos
La discusión en este apéndice se ha enfocado hasta ahora en números positivos. En esta sección explicaremos cómo las computadoras representan números negativos mediante el uso de la notación de complementos a dos. Primero explicaremos cómo se forma el complemento a dos de un número binario y después mostraremos por qué representa el valor negativo de dicho número binario.
Considere una máquina con enteros de 32 bits. Suponga que se ejecuta la siguiente instrucción:
int valor = 13;
La representación en 32 bits de valores:
00000000 00000000 00000000 00001101
Para formar el negativo de valor, primero formamos su complemento a uno aplicando el operador de com-plemento a nivel de bits de Java (~):
complementoAUnoDeValor = ~valor;
Internamente,~valores ahora valorcon cada uno de sus bits invertidos; los unos se convierten en ceros y los ceros en unos, como se muestra a continuación:
valor:
00000000 00000000 00000000 00001101
~valor(es decir, el complemento a uno de valor):
11111111 11111111 11111111 11110010
Para formar el complemento a dos de valor, simplemente sumamos uno al complemento a uno de valor. Por lo tanto:
El complemento a dos de valores:
11111111 11111111 11111111 11110011
Ahora, si esto de hecho es igual a –13, deberíamos poder sumarlo al 13 binario y obtener como resultado 0. Comprobemos esto:
00000000 00000000 00000000 00001101 +11111111 11111111 11111111 11110011 ---00000000 ---00000000 ---00000000 ---00000000
El bit de acarreo que sale de la columna que está más a la izquierda se descarta y evidentemente obtenemos ce-ro como resultado. Si sumamos el complemento a uno de un númece-ro a ese mismo númece-ro, todos los dígitos del resultado serían iguales a 1. La clave para obtener un resultado en el que todos los dígitos sean cero es que el com-plemento a dos es 1 más que el comcom-plemento a 1. La suma de 1 hace que el resultado de cada columna sea 0 y se acarrea un 1. El acarreo sigue desplazándose hacia la izquierda hasta que se descarta en el bit que está más a la izquierda, con lo que todos los dígitos del número resultante son iguales a cero.
mediante la suma del complemento a dos de valorcon a, como se muestra a continuación: x = a + (~valor + 1 );
Suponga que aes 27 y que valores 13 como en el ejemplo anterior. Si el complemento a dos de valores en realidad el negativo de éste, entonces al sumar el complemento de dos de valorcon ase produciría el re-sultado de 14. Comprobemos esto:
a(es decir, 27) 00000000 00000000 00000000 00011011
+(~valor + 1) +11111111 11111111 11111111 11110011
---00000000 ---00000000 ---00000000 00001110
lo que ciertamente da como resultado 14.
RESUMEN
• Cuando escribimos un entero como 19, 227 o –63, en un programa de Java, suponemos que el número se encuentra en el sistema numérico decimal (base 10). Los dígitos en el sistema numérico decimal son 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9. El dígito más bajo es el 0 y el más alto es el 9 (uno menos que la base, 10).
• En su interior, las computadoras utilizan el sistema numérico binario (base 2). Este sistema numérico sólo tiene dos dígi-tos: 0 y 1. El dígito más bajo es el 0 y el más alto es el 1 (uno menos que la base, 2).
• El sistema numérico octal (base 8) y el sistema numérico hexadecimal (base 16) son populares debido a que permiten abre-viar los números binarios de una manera conveniente.
• Los dígitos que se utilizan en el sistema numérico octal son del 0 al 7.
• El sistema numérico hexadecimal presenta un problema, ya que requiere de dieciséis dígitos: el dígito más bajo es 0 y el más alto tiene un valor equivalente al 15 decimal (uno menos que la base, 16). Por convención utilizamos las letras de la A a la F para representar los dígitos hexadecimales que corresponden a los valores decimales del 10 al 15.
• Cada uno de estos sistemas numéricos utilizan la notación posicional: cada posición en la que se escribe un dígito tiene un distinto valor posicional.
• Una relación especialmente importante que tienen tanto el sistema numérico octal como el hexadecimal con el sistema bi-nario es que las bases de los sistemas octal y hexadecimal (8 y 16, respectivamente) son potencias de la base del sistema numérico binario (base 2).
• Para convertir un número octal en binario, sustituya cada dígito octal con su equivalente binario de tres dígitos.
• Para convertir un número hexadecimal en binario, simplemente sustituya cada dígito hexadecimal con su equivalente bi-nario de cuatro dígitos.
• Como estamos acostumbrados a trabajar con el sistema decimal, es conveniente convertir un número binario, octal o he-xadecimal en decimal para tener una idea de lo que “realmente” vale el número.
• Para convertir un número en decimal desde otra base, multiplique el equivalente en decimal de cada dígito por su valor posicional y sume estos productos.
• Las computadoras representan números negativos mediante el uso de la notación de complementos a dos.
• Para formar el negativo de un valor en binario, primero formamos su complemento a uno aplicando el operador de com-plemento a nivel de bits de Java (~): Esto invierte los bits del valor. Para formar el comcom-plemento a dos de un valor, simple-mente sumamos uno al complemento a uno de ese valor.
TERMINOLOGÍA
base conversiones dígito
notación de complementos a dos notación de complementos a uno notación posicional
operador de complemento a nivel de bits (~)
sistema numérico binario sistema numérico de base 2 sistema numérico de base 8 sistema numérico de base 10 sistema numérico de base 16
EJERCICIOS DE AUTOEVALUACIÓN
C.1 Las bases de los sistemas numéricos decimal, binario, octal y hexadecimal son , , y , respectivamente.
C.2 En general, las representaciones en decimal, octal y hexadecimal de un número binario dado contienen (más/me-nos) dígitos de los que contiene el número binario.
C.3 (Verdadero/falso.) Una de las razones populares de utilizar el sistema numérico decimal es que forma una notación conveniente para abreviar números binarios, en la que simplemente se sustituye un dígito decimal por cada grupo de cuatro dígitos binarios.
C.4 La representación (octal/hexadecimal/decimal) de un valor binario grande es la más concisa (de las alternativas dadas).
C.5 (Verdadero/falso.) El dígito de mayor valor en cualquier base es uno más que la base.
C.6 (Verdadero/falso.) El dígito de menor valor en cualquier base es uno menos que la base.
C.7 El valor posicional del dígito que se encuentra más a la derecha en cualquier número, ya sea binario, octal, deci-mal o hexadecideci-mal es siempre .
C.8 El valor posicional del dígito que está a la izquierda del dígito que se encuentra más a la derecha en cualquier nú-mero, ya sea binario, octal, decimal o hexadecimal es siempre igual a .
C.9 Complete los valores que faltan en esta tabla de valores posicionales para las cuatro posiciones que están más a la derecha en cada uno de los sistemas numéricos indicados:
decimal 1000 100 10 1
hexadecimal ... 256 ... ...
binario ... ... ... ...
octal 512 ... 8 ...
C.10 Convierta el número binario 110101011000 en octal y en hexadecimal.
C.11 Convierta el número hexadecimal FACE en binario.
C.12 Convierta el número octal 7316 en binario.
C.13 Convierta el número hexadecimal 4FEC en octal. (Sugerencia: Primero convierta el número 4FEC en binario y des-pués convierta el número resultante en octal.)
C.14 Convierta el número binario 1101110en decimal.
C.15 Convierta el número octal 317en decimal.
C.16 Convierta el número hexadecimal EFD4en decimal.
C.17 Convierta el número decimal 177en binario, en octal y en hexadecimal.
C.18 Muestre la representación binaria del número decimal 417. Después muestre el complemento a uno de 417y el complemento a dos del mismo número.
C.19 ¿Cuál es el resultado cuando se suma el complemento a uno de un número con ese mismo número?
RESPUESTAS A LOS EJERCICIOS DE AUTOEVALUACIÓN
C.1 10, 2, 8, 16.
C.2 Menos.
C.3 Falso.
C.4 Hexadecimal.
C.5 Falso. El dígito de mayor valor en cualquier base es uno menos que la base.
C.6 Falso. El dígito de menor valor en cualquier base es cero.
C.7 1(La base elevada a la potencia de cero).
C.8 La base del sistema numérico.
C.9 Complete los valores que faltan en esta tabla de valores posicionales para las cuatro posiciones que están más a la derecha en cada uno de los sistemas numéricos indicados:
decimal 1000 100 10 1
binario 8 4 2 1
octal 512 64 8 1
C.10 6530octal; D58hexadecimal.
C.11 1111 1010 1100 1110binario.
C.12 111 011 001 110binario.
C.13 0 100 111 111 101 100binario; 47754octal.
C.14 2+4+8+32+64=110decimal.
C.15 7+1*8+3*64=7+8+192=207decimal.
C.16 4+13*16+15*256+14*4096=61396decimal.
C.17 177decimal en binario:
256 128 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1
(1*128)+(0*64)+(1*32)+(1*16)+(0*8)+(0*4)+(0*2)+(1*1) 10110001
en octal:
512 64 8 1 64 8 1
(2*64)+(6*8)+(1*1) 261
en hexadecimal:
256 16 1 16 1
(11*16)+(1*1) (B*16)+(1*1) B1
C.18 Binario:
512 256 128 64 32 16 8 4 2 1 256 128 64 32 16 8 4 2 1
(1*256)+(1*128)+(0*64)+(1*32)+(0*16)+(0*8)+(0*4)+(0*2)+ (1*1)
110100001
Complemento a uno: 001011110 Complemento a dos: 001011111
Comprobación: Número binario original + su complemento a dos:
110100001 001011111 ---000000000
C.19 Cero.
EJERCICIOS
C.20 Algunas personas argumentan que muchos de nuestros cálculos se realizarían más fácilmente en el sistema numé-rico de base 12, ya que el 12 puede dividirse por muchos más números que el 10 (por la base 10). ¿Cuál es el dí-gito de menor valor en la base 12? ¿Cuál podría ser el símbolo con mayor valor para un dídí-gito en la base 12? ¿Cuá-les son los valores posiciona¿Cuá-les de las cuatro posiciones más a la derecha de cualquier número en el sistema numé-rico de base 12?
C.22 Complete la siguiente tabla de valores posicionales para las cuatro posiciones más a la derecha en cada uno de los sistemas numéricos indicados:
decimal 1000 100 10 1
base 6 ... ... 6 ...
base 13 ... 169 ... ...
base 3 27 ... ... ...
C.23 Convierta el número binario 100101111010 en octal y en hexadecimal.
C.24 Convierta el número hexadecimal 3A7D en binario.
C.25 Convierta el número hexadecimal 765F en octal. (Sugerencia: Primero conviértalo en binario y después convierta el número resultante en octal.)
C.26 Convierta el número binario 1011110 en decimal.
C.27 Convierta el número octal 426 en decimal.
C.28 Convierta el número hexadecimal FFFF en decimal.
C.29 Convierta el número decimal 299 en binario, en octal y en hexadecimal.
C.30 Muestre la representación binaria del número decimal 779. Después muestre el complemento a uno de 779 y el complemento a dos del mismo número.
C.31 ¿Cuál es el resultado cuando se suma el complemento a dos de un número con ese mismo número?