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 1 (uno)

Complemento a 1 (uno)

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

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 Menos 1. De forma normalizada, el Complemento a la Base Menos 1 de un número entero positivo N de base b, se expresa de la siguiente manera:

Cb-1(N) = bn - 1 - N

siendo n el número de cifras destinadas a representar al número. Por tanto, en codificación binaria, el Complemento a 1 (C1) de un número entero positivo (N) se puede expresar como:

C1(N) = 2n - 1 - N = NC1

En Complemento a 1, el rango de representación es el mismo que en Signo Magnitud:
Rango de Representación en Complemento a 1
Figura - Rango de representación en Complemento a 1.
Ejemplo 1: En Complemento a 1, para n = 16, el rango de representación es:
Ejemplo de representación en Complemento a 1
Así pues, se pueden representar 216 - 1 = 65535 números enteros, que van desde el -3276710 hasta el 3276710.

Ejemplo 2: En Complemento a 1, para n = 16, el número positivo 950310 se representa igual que en Signo Magnitud o que en Binario Puro:
9503 en Complemento a 1
Por tanto,

950310 = 0010010100011111C1 = 0010010100011111SM = 0010010100011111BP

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

C1(N) = C1(10010100011111) =

= 2n - 1 - N =

= 216 - 1 - 10010100011111 =

= 10000000000000000 - 1 - 10010100011111 =

= 1101101011100000C1


En consecuencia,

-950310 = 1101101011100000C1

Obsérvese que, el Complemento a 1 de un número entero positivo (N) escrito en binario es el resultado de cambiar todos los
bits de valor, es decir, todos los ceros por unos y todos unos por ceros.
Representación -9503 en Complemento a 1
Por otra parte, dado un número entero positivo (N) en Complemento a 1, para calcular su valor en base 10, se puede utilizar la misma fórmula que en Signo Magnitud o que en Binario Puro.

Un número (N) representado en Complemento a 1 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, habrá que cambiar todos los unos por ceros y todos los ceros por unos, obteniendo así su correspondiente número positivo, al cual sí se le puede aplicar una de las fórmulas anteriores y cambiarle el signo al resultado.

Ejemplo 4: Si se desea calcular el valor en base 10 del número 1111101011111101C1, puesto que el bit más significativo es un 1, sabemos que es negativo, por tanto, en primer lugar, cambiaremos los ceros por unos y los unos por ceros:

1111101011111101C1(negativo) → 0000010100000010C1(positivo)

y, en segundo lugar, calcularemos el valor en base 10 del número obtenido, con la misma fórmula que se emplea para los números escritos en Signo Magnitud:

0000010100000010C1 = ( (1 - 2∙0) ∙ (1∙210 + 1∙28 + 1∙21) )10 = ( (1) ∙ (1024 + 256 + 2) )10 = 128210

o con la misma fórmula utilizada para números representados en Binario Puro:

0000010100000010C1 = ( 1∙210 + 1∙28 + 1∙21 )10 = ( 1024 + 256 + 2 )10 = 128210

De forma que:

1111101011111101C1(negativo) = -( 0000010100000010C1(positivo) )10 = -128210

es decir,

1111101011111101C1 = -128210

Por otro lado, al igual que ocurría en Signo Magnitud, el número 010 también tiene dos representaciones en Complemento a 1.

Ejemplo 5: Para n = 16, el número 010 se puede escribir de dos formas en Complemento a 1:

010 = 0000000000000000C1 = 1111111111111111C1
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