Suponga que
a
es 27 y que
valor
es 13 como en el ejemplo anterior. Si el complemento a dos de
valor
es en
realidad el negativo de éste, entonces al sumar el complemento de dos de
valor
con
a
se produciría el resultado
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 encuen-
tra 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í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).
• El sistema numérico octal (base 8) y el sistema numérico hexadecimal (base 16) son populares debido a que permi-
ten abreviar 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 sis-
tema binario 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 equivalen-
te binario de cuatro dígitos.
• Como estamos acostumbrados a trabajar con el sistema decimal, es conveniente convertir un número binario, octal
o hexadecimal 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
complemento a nivel de bits de Java (
~
). Esto invierte los bits del valor. Para formar el complemento a dos de un
valor, simplemente sumamos uno al complemento a uno de ese valor.
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 10
sistema numérico de base 16
sistema numérico de base 2
sistema numérico de base 8
sistema numérico decimal
sistema numérico hexadecimal
sistema numérico octal
valor negativo
valor posicional
valor simbólico
Terminología
Terminología
1353
31_MAQ_APENDICES_Deiltel.indd1353
5/8/084:23:50PM