Inicio | Artículos | Cursos Online | Libros | Diccionario | Mapa Web | Enlazar | Contactar | Acerca de


C/C++/C# HTML Java JavaScript Linux PHP Python Swift
CURSO/TUTORIAL DE REPRESENTACIÓN DE LOS DATOS
Introducción
Introducción al Curso
Sistemas de Numeración
Sistema de Numeración Romano
Sistema de Numeración Arábigo
Conversiones de Bases
De base (b) a base 10
De base 10 a base (b)
De base (b) a base (c), ambas distintas de 10
Aritmética Binaria
Aritmética Binaria
Representación de Números Enteros
Binario Puro
Signo Magnitud
Complemento a 1
Complemento a 2
Exceso a 2n-1
BCD
Representación de Números Reales
Estándar IEEE 754
Representación de Caracteres
EBCDIC
ASCII
Unicode
CarlosPes.comCurso de Representación de los Datos > Complemento a 2 (dos)

Complemento a 2 (dos)

¿Cómo se escribe un número en Complemento a 2?

En este sistema de representación, los números positivos se expresan igual que en Signo Magnitud o que en Binario Puro. Sin embargo, para escribir los números negativos se utiliza el Complemento a la Base. Formalmente, el Complemento a la Base de un número entero positivo N de base b, se expresa de la siguiente manera:

Cb(N) = bn - N

siendo n el número de cifras empleadas en la representación del número. Por tanto, en codificación binaria, el Complemento a 2 (C2) de un número entero positivo (N) se puede expresar como:

C2(N) = 2n - N = NC2

El rango de representación en Complemento a 2 es:
Rango de Representación en Complemento a 2
Figura - Rango de representación en Complemento a 2.
Ejemplo 1: En Complemento a 2, para n = 16, el rango de representación es:
Ejemplo de representación en Complemento a 2
Ejemplo 2: En Complemento a 2, para n = 16, el número positivo 950310 se representa igual que en Complemento a 1, Signo Magnitud o Binario Puro:
950310 = 0010010100011111C2 = 0010010100011111C1 = 0010010100011111SM = 0010010100011111BP

Ejemplo 3: En Complemento a 2, para n = 16, el número -950310 se escribe calculando el Complemento a la Base del número 950310 representado en base 2, es decir, del número 100101000111112:

C2(N) = C2(10010100011111) =

= 2n - N =

= 216 - 10010100011111 =

= 10000000000000000 - 10010100011111 =

= 1101101011100000C2


En consecuencia,

-950310 = 1101101011100001C2

Fíjese que, el Complemento a 2 de un número entero positivo (N) escrito en binario es el resultado de cambiar todos los
bits de valor (ceros por unos y unos por ceros), obteniendo así el Complemento a 1 del número y, después, sumarle 1.

C2(N) = C1(N) + 1 = NC1 + 1 = NC2

De esta manera, en tan solo dos pasos se puede calcular, fácilmente, el Complemento a 2. Por ejemplo, dado el número:
Representación 9503 en Binario Puro
para calcular el Complemento a 2, en un primer paso se calcula el Complemento a 1 de dicho número:
Representación 9503 en Complemento a 1
y, en un segundo paso, se le suma 1 al número obtenido en Complemento a 1:
Representación 1 en base 2
El resultado es el esperado:
Representación -9503 en Complemento a 2
Por otro lado, si se pretende calcular el valor en base 10 de un número entero positivo (N) escrito Complemento a 2, se puede usar la misma fórmula que en Signo Magnitud o que en Binario Puro.

Un número (N) representado en Complemento a 2 es positivo si el bit más significativo es cero. En caso contrario, el número será negativo, y para calcular su valor en base 10, se tiene que utilizar la fórmula:
Fórmula de Complemento a 2 a base 10
Figura - Fórmula para calcular, en base 10, el valor de un número entero negativo escrito en Complemento a 2.
Ejemplo 4: Para calcular el valor en base 10 del número 1001000000000110C2, se debe emplear la fórmula anterior. De tal forma que:

1001000000000110C2 = ( (-1∙215) + (1∙212 + 1∙22 + 1∙21) )10 = ( (-32768) + (4102) )10 = -2866610
Artículos Interesantes
Artículos de Desarrollo Web
Artículos de Informática
Artículos de Programación
Artículos de SEO
Cursos/Tutoriales de Informática
Curso/Tutorial de Algoritmos
Curso/Tutorial de Informática Básica
Curso/Tutorial de Ingeniería del Software
Curso/Tutorial de Lenguaje C
Curso/Tutorial de Marketing en Internet
Curso/Tutorial de Turbo Pascal
Curso/Tutorial de Representación de los Datos
Curso/Tutorial para Webmasters
Curso/Tutorial Web 2.0
Curso de SEO
Libros de Carlos Pes
36 Pasos Básicos para Desarrollar un Sitio Web
Empezar de Cero a Programar en Lenguaje C
Fundamentos del SEO
Libros Recomendados
Libros de Analítica Web
Libros de Desarrollo Web
Libros de Java
Libros de Lenguaje C
Libros de Marketing Online
Libros de Pascal (Turbo Pascal)
Libros de SEO
Libros de Visual Basic
Recursos de Informática
Diccionario de Informática
Ejercicios de Programación
Guías de uso de Software
Sintaxis de Lenguajes de Programación
Biografías
Entrevistas
Frases y Citas
Recursos Educativos
Presentaciones Educativas
Videos Educativos
Enlaces Web
Acerca de Carlos Pes
Bibliotecas
Colaboradores
Contactar
Enlazar
Librerías
Perfiles en Internet
Mapa Web
Blog de Carlos Pes Blog de Carlos Pes
© CarlosPes.com | Privacidad | Condiciones