cim_20_a4
DESCRIPTION
sistemasTRANSCRIPT
![Page 1: CIM_20_A4](https://reader036.vdocuments.mx/reader036/viewer/2022081816/55cf9324550346f57b9c11af/html5/thumbnails/1.jpg)
Representación de números con signo 1
Representación de números con signoEn matemáticas, los números negativos en cualquier base se representan del modo habitual, precediéndolos con unsigno «−». Sin embargo, en una computadora, hay varias formas de representar el signo de un número. Este artículotrata cuatro métodos de extender el sistema binario para representar números con signo: signo y magnitud,complemento a uno, complemento a dos y exceso a bn-1.Para la mayoría de usos, las computadoras modernas utilizan típicamente la representación en complemento a dos,aunque pueden usarse otras en algunas circunstancias.En las secciones a continuación, nos referiremos exclusivamente al caso de números signados en binario (ycontrastaremos con el decimal con fines didácticos), esto no significa que lo mostrado aquí se pueda llevar en formaanáloga a otras bases (hexadecimal, u octal, por ejemplo).
Signo y Magnitud
Para n = 8 (8 bits) en Signo y Magnitud
Valores de 8 bits Interpretado en Signo y Magnitud en decimal Interpretado como Entero sin signo en decimal
00000000 0 0
00000001 1 1
00000010 2 2
... ... ...
01111110 126 126
01111111 127 127
10000000 −0 128
10000001 −1 129
10000010 −2 130
... ... ...
11111101 −125 253
11111110 −126 254
11111111 −127 255
Un primer enfoque al problema de representar un número signado de n-bits consiste en asignar:1. un bit para representar el signo. Ese bit a menudo es el bit más significativo o MSB (de sus siglas en inglés) y,
por convención: un 0 denota un número positivo, y un 1 denota un número negativo;2. los (n-1)-bits restantes para representar el significando que es la magnitud del número en valor absoluto.Y se conoce como Signo y Magnitud.Este enfoque es directamente comparable a la forma habitual de mostrar el signo (colocando "+" o "-" al lado de lamagnitud del número). Algunas de las primeras computadoras binarias (la IBM 7090) utilizaron esta representación,quizás por su relación obvia con la práctica habitual.El formato Signo y Magnitud es además el habitual para la representación del significando en números en puntoflotante.
![Page 2: CIM_20_A4](https://reader036.vdocuments.mx/reader036/viewer/2022081816/55cf9324550346f57b9c11af/html5/thumbnails/2.jpg)
Representación de números con signo 2
Ejemplo de Signo y MagnitudSea una representación en formato de Signo y Magnitud que nos permite codificar en binario en punto fijo con 8 bits(un byte). Esto nos otorga 1 bit para el signo y 7 bits para la magnitud. Con 8 bits, podemos representar, en teoría almenos (véase Desventajas, más abajo), 28 = 256 números. Los cuales, según éste formato, van a estar repartidosentre 128 números positivos (bit de signo en 0) y 128 números negativos (bit de signo en 1).Supongamos ahora, que tenemos que representar el número -9710 (decimal). Procedemos a:1. Tomar nota del signo del número -9710, que siendo negativo, llevará como bit de signo un 1;2. Realizar la conversión: el valor absoluto de -9710 es |-9710| = 9710. Que en binario es: 11000012;3. Colocar todo junto, el número -9710 en binario con formato de Signo y Magnitud es: 111000012. Donde el 1 en el
bit más significativo indica un número negativo, y 11000012 es el significando en valor absoluto.Para el caso inverso, dado un número binario en Signo y Magnitud, por ejemplo, 101101012, procedemos a:1. Analizar el bit más significativo, que siendo un 1 indica que el número es negativo;2. Convertir el significando a la base deseada, por ejemplo, en decimal, tomando en cuenta que el valor obtenido
está en valor absoluto y la magnitud real estará dada por el bit de signo obtenido antes: 01101012 = |5310|. Siendoque el bit de signo es 1, el número real es -5310. Si el bit de signo fuese 0, el número hubiese sido +5310.
Desventajas de la representación en Signo y MagnitudSiguiendo con el ejemplo de n = 8 (8 bits).• No permite operar aritméticamente. De intentar hacer una suma sencilla de un número positivo y uno negativo, se
obtienen resultados incorrectos. Por ejemplo: 000101012 + 111000012 = 111101102 (+2110 + -9710 = -11810 ≠-7610).
• Posee doble representación del cero. Al representar en Signo y Magnitud, aparece el cero signado: 000000002(+010) y 100000002 (-010).
Ventajas de la representación en Signo y MagnitudSiguiendo con el ejemplo de n = 8 (8 bits).• Posee un rango simétrico: los números van del +12710 = 011111112, pasando por el +010 = 000000002 y el -010 =
100000002, hasta el -12710 = 111111112. Y en forma general, para n-bits, el rango (en decimal) para Signo yMagnitud es (-2n-1-1; 2n-1-1), o bien ± 2n-1-1.
Complemento a la base menos uno
Para n = 8 (8 bits) en Complemento a uno
Valores de 8 bits Interpretado en Complemento a uno en decimal Interpretado como Entero sin signo en decimal
00000000 0 0
00000001 1 1
00000010 2 2
... ... ...
01111110 126 126
01111111 127 127
10000000 −127 128
10000001 −126 129
![Page 3: CIM_20_A4](https://reader036.vdocuments.mx/reader036/viewer/2022081816/55cf9324550346f57b9c11af/html5/thumbnails/3.jpg)
Representación de números con signo 3
10000010 −125 130
... ... ...
11111101 −2 253
11111110 −1 254
11111111 −0 255
Otro enfoque sería representar números negativos usando el complemento a la base menos uno. En el caso de losnúmeros binarios, sería el complemento a uno y la forma del complemento a uno de un número binario es un NOTbit a bit aplicado al número, es decir, la inversión de unos por ceros y ceros por unos. De esta forma, en larepresentación por Complemento a uno de un número signado de n-bits asignamos:1. un bit para representar el signo. Ese bit a menudo es el bit más significativo y, por convención: un 0 denota un
número positivo, y un 1 denota un número negativo;2. los (n-1)-bits restantes para representar el significando que es la magnitud del número en valor absoluto para el
caso de números positivos, o bien, en el complemento a uno del valor absoluto del número, en caso de sernegativo.
Observar así que la representación en Complemento a uno de un número negativo se puede obtener de larepresentación en Signo y Magnitud por una mera inversión de unos por ceros y ceros por unos del significando.Este sistema numérico de representación era común en computadoras más antiguas; el PDP-1 y la serie de UNIVAC1100/2200, entre muchas otras, utilizaron la aritmética en complemento a uno.
Ejemplo de Complemento a unoSea una representación en formato de Complemento a uno que nos permite codificar en binario en punto fijo con 8bits (un byte). Al igual que con la representación en Signo y Magnitud, esto nos otorga 1 bit para el signo y 7 bitspara la magnitud. Con 8 bits, podemos representar, en teoría al menos (véase nuevamente Desventajas, más abajo),28 = 256 números. Los cuales, según éste formato, van a estar repartidos entre 128 números positivos (bit de signo en0) y 128 números negativos (bit de signo en 1).Supongamos ahora, que tenemos que representar el número -9710. Procedemos a:1. Tomar nota del signo del número -9710, que siendo negativo, llevará como bit de signo un 1;2. Como el signo es negativo, el número a continuación del bit de signo, deberá expresarse en complemento a uno.
Al realizar la conversión: el valor absoluto de -9710 es |-9710| = 9710. Que en binario es: 11000012, y elcomplemento a uno de 11000012 es C1(1100001) = 00111102;
3. Colocar todo junto, el número -9710 en binario con formato de Complemento a uno es: 100111102. Donde el 1 enel bit más significativo indica un número negativo, y 00111102 es el significando en complemento a uno del valorabsoluto del número.
Para el caso inverso, dado un número binario en Complemento a uno, por ejemplo, 101101012, procedemos a:1. Analizar el bit más significativo, que siendo un 1 indica que el número es negativo;2. Convertir el significando a la base deseada, por ejemplo, en decimal, tomando en cuenta que: el valor obtenido
está en valor absoluto, que la magnitud real estará dada por el bit de signo obtenido antes, y que en caso de ser bitde signo negativo (como es el caso) se deberá obtener el complemento a uno: C1(0110101) = 10010102 = |7410|.Siendo que el bit de signo es 1, el número real es -7410. Si el bit de signo fuese 0, el número hubiese sido01101012 = +5310 ('sin complementar a uno).
![Page 4: CIM_20_A4](https://reader036.vdocuments.mx/reader036/viewer/2022081816/55cf9324550346f57b9c11af/html5/thumbnails/4.jpg)
Representación de números con signo 4
Desventajas de la representación en Complemento a unoSiguiendo con el ejemplo de n = 8 (8 bits).• Posee doble representación del cero. Al representar en Complemento a uno, aparece nuevamente el cero signado:
000000002 (+010) y 111111112 (-010).
Ventajas de la representación en Complemento a unoSiguiendo con el ejemplo de n = 8 (8 bits).• Posee un rango simétrico: los números van del +12710 = 011111112, pasando por el +010 = 000000002 y el -010 =
111111112, hasta el -12710 = 100000002. Y en forma general, para n-bits, el rango (en decimal) paraComplemento a uno es (-(2n-1)-1; 2n-1-1), o bien ± 2n-1-1.
• Permite operar aritméticamente. NOTA: al operar se debe sumar el acarreo obtenido al final de la adición/restarealizadas (conocido como end-around carry), en caso de haberlo obtenido, para conseguir el resultado correcto.Por ejemplo: 000101012 + 100111102 = 101100112 (+2110 + -9710 = -7610) puesto que el end-around carry escero; pero, 000000102 + 111111102 = 1000000002 (+210 + -110 = -010 ≠ +110), que corregimos mediante000000102 + 111111102 = 000000002 + 12 = 000000012, que es el resultado correcto.
Los protocolos de Internet IPv4, ICMP, UDP y TCP usan todos el mismo algoritmo de suma de verificación de 16bits en complemento a uno. Aunque la mayoría de la computadoras carecen del hardware para manejar acarreo delúltimo bit (end-around carry), la complejidad adicional es aceptada ya que es igualmente sensible a errores en todaslas posiciones de bits. En UDP, una representación de todos ceros indica que la suma de verificación opcional hasido omitida. La otra representación, todos unos, indica un valor 0 en la suma de verificación (las sumas deverificación son obligatorias para IPv4, TCP e ICMP; fueron omitidas en IPv6).
Complemento a la base
Para n = 8 (8 bits) en Complemento a dos
Valores de 8 bits Interpretado en Complemento a dos en decimal Interpretado como Entero sin signo en decimal
00000000 0 0
00000001 1 1
00000010 2 2
... ... ...
01111110 126 126
01111111 127 127
10000000 −128 128
10000001 −127 129
10000010 −126 130
... ... ...
11111101 −3 253
11111110 −2 254
11111111 −1 255
Otro enfoque sería representar números negativos usando el complemento a la base. En el caso de los númerosbinarios, sería el complemento a dos y la forma de obtener el complemento a dos de un número binario es mediantela obtención del complemento a uno y sumarle uno, o bien:
![Page 5: CIM_20_A4](https://reader036.vdocuments.mx/reader036/viewer/2022081816/55cf9324550346f57b9c11af/html5/thumbnails/5.jpg)
Representación de números con signo 5
Ejemplo 1 Ejemplo 2
1. Empezando desde la derecha encontramos el primer '1' 0101001 0101100
2. Hacemos un NOT a todos los bits que quedan por la izquierda 1010111 1010100
De esta forma, en la representación por Complemento a dos de un número signado de n-bits asignamos:1. un bit para representar el signo. Ese bit a menudo es el bit más significativo y, por convención: un 0 denota un
número positivo, y un 1 denota un número negativo;2. los (n-1)-bits restantes para representar el significando que es la magnitud del número en valor absoluto para el
caso de números positivos, o bien, en el complemento a dos del valor absoluto del número, en caso de sernegativo.
Observar así que la representación en Complemento a dos de un número negativo se puede obtener de larepresentación en Signo y Magnitud por una mera inversión de unos por ceros y ceros por unos del significando, ysumarle uno al valor obtenido.
Ejemplo de Complemento a dosSea una representación en formato de Complemento a dos que nos permite codificar en binario en punto fijo con 8bits (un byte). Al igual que con la representación en Signo y Magnitud, y Complemento a uno, esto nos otorga 1 bitpara el signo y 7 bits para la magnitud. Con 8 bits, podemos representar, 28 = 256 números. Los cuales, según ésteformato, van a estar repartidos entre 128 números positivos (bit de signo en 0) y 128 números negativos (bit de signoen 1).Supongamos ahora, que tenemos que representar el número -9710. Procedemos a:1. Tomar nota del signo del número -9710, que siendo negativo, llevará como bit de signo un 1;2. Como el signo es negativo, el número a continuación del bit de signo, deberá expresarse en complemento a dos.
Al realizar la conversión: el valor absoluto de -9710 es |-9710| = 9710. Que en binario es: 11000012, y elcomplemento a uno de 11000012 es C1(1100001) = 00111102, le sumamos uno para obtener el complemento ados: 00111102 + 00000012 = 00111112;
• Colocar todo junto, el número -9710 en binario con formato de Complemento a dos es: 100111112. Donde el 1 enel bit más significativo indica un número negativo, y 00111112 es el significando en complemento a dos del valorabsoluto del número.
Para el caso inverso, dado un número binario en Complemento a dos, por ejemplo, 101101012, procedemos a:1. Analizar el bit más significativo, que siendo un 1 indica que el número es negativo;2. Convertir el significando a la base deseada, por ejemplo, en decimal, tomando en cuenta que: el valor obtenido
está en valor absoluto, que la magnitud real estará dada por el bit de signo obtenido antes, y que en caso de ser bitde signo negativo (como es el caso) se deberá obtener el complemento a dos: C2(0110101) = C1(0110101) +00000012, luego C1(0110101) = 10010102, y al sumarle 1, 10010112 = |7510|. Siendo que el bit de signo es 1, elnúmero real es -7510. Si el bit de signo fuese 0, el número hubiese sido 01101012 = +5310 (sin complementar ados).
![Page 6: CIM_20_A4](https://reader036.vdocuments.mx/reader036/viewer/2022081816/55cf9324550346f57b9c11af/html5/thumbnails/6.jpg)
Representación de números con signo 6
Desventajas de la representación en Complemento a dosSiguiendo con el ejemplo de n = 8 (8 bits).• Posee un rango asimétrico: los números van del +12710 011111112, pasando por el +010, 000000002. Y aquí
aparece la primera diferencia, el 111111112, ya no es -010 como en la representación anterior, sino que es -110, yal llegar al 100000002 nos encontramos con que el complemento a dos de 100000002 es 100000002, ¡el mismonúmero!. Por convención, se asigna a este número particular el valor -1282 (para 8 bits). Luego, en forma general,para n-bits, el rango (en decimal) para Complemento a dos es (-2n-1; 2n-1-1).
Ventajas de la representación en Complemento a dosSiguiendo con el ejemplo de n = 8 (8 bits).• No posee doble representación del cero.• Permite operar aritméticamente.
En Exceso a bn-1
Para n = 8 (8 bits) en Exceso a 127
Valores de 8 bits Interpretado en Exceso a 127 en decimal Interpretado como Entero sin signo en decimal
00000000 -127 0
00000001 -126 1
00000010 -125 2
... ... ...
01111110 -1 126
01111111 0 127
10000000 1 128
10000001 2 129
10000010 3 130
... ... ...
11111101 126 253
11111110 127 254
11111111 128 255
Un último enfoque al problema de representar un número signado de n-bits consiste en asignar tomar el valor real delnúmero a representar, sumarle la base elevada al número de dígitos que se tienen disponibles, y restarle uno. En elcaso particular de base 2, sistema binario, el número x en de n-bits es representado como x + 2n-1. Esto se conocecomo representación en Exceso a bn-1, puesto que cada número se le suma el mismo valor y está en exceso por dichovalor.El formato en exceso es habitual para la representación del exponente en números en punto flotante, por ejemplo,para la norma IEEE-754.
![Page 7: CIM_20_A4](https://reader036.vdocuments.mx/reader036/viewer/2022081816/55cf9324550346f57b9c11af/html5/thumbnails/7.jpg)
Representación de números con signo 7
Ejemplo de Exceso 2n-1
Sea una representación en formato de Exceso que nos permite codificar en binario en punto fijo con 8 bits (un byte).Luego, los números 8 bits serán representados en Exceso a 28-1 -1 = 12710. Con 8 bits, podemos representar, 28 =256 números.Supongamos ahora, que tenemos que representar el número -9710 (decimal). Procedemos a:1. Tomar el número -9710 y sumarle el exceso, en este caso 12710, luego -9710 + 12710 = 3010;2. Convertimos a binario, en este caso. Luego, 3010 = 000111102.Para el caso inverso, dado un número binario en Exceso 12710, por ejemplo, 101101012, procedemos a:1. Convertir el número a la base deseada, por ejemplo, en decimal: 101101012 = 18110;2. Pero el valor obtenido está en exceso 127, luego debemos quitarle dicho exceso, restando 127: 18110 - 12710 =
5410.
Desventajas de la representación en Exceso 2n-1Siguiendo con el ejemplo de n = 8 (8 bits).• Requiere de operaciones aritméticas intermedias para su obtención, y de cambiar el número de bits se deben
actualizar dichas operaciones intermedias para reflejar el nuevo exceso.• Posee rango asimétrico: éste va desde +12810 = 111111112 hasta -12710 = 000000002. Y en forma general, para
n-bits, el rango (en decimal) para Exceso 2n es (-2n-1+1; 2n-1).
Ventajas de la representación en Exceso 2n-1Siguiendo con el ejemplo de n = 8 (8 bits).• Permite operar aritméticamente, pero hay que tener en cuenta que cada operación lleva asociado su exceso y esto
hay que restarselo al resultado final, para corregir la representación. Por ejemplo, 000111102 + 101101012 =110100112 (-9710 + 5410 = 21110 ≠ -4310). El resultado, en aparente exceso 12710, 21110, al quitarle dicho excesoes 21110 - 12710 = 8410. Pero, hay que tener en cuenta que al sumar dos números con exceso 12710, debemosrestar, dos veces el exceso. Luego 8410 - 12710 = -4310, que es el resultado correcto.
• No hay empaquetación del número. Por esto nos referimos a que no hay que recordar que partes del número sonsigno y significando, sino que los n-bits, son el número.
son los mas espesificados normal mente.
Tabla de comparaciónLa tabla siguiente compara la representación de los enteros entre 8 y -8 (incluidos) usando 4 bits.
Representación de enteros de 4 bits
Decimal Entero sin signo Signo y Magnitud Complemento a uno Complemento a dos En exceso a 7
+8 1000 n/d n/d n/d 1111
+7 0111 0111 0111 0111 1110
+6 0110 0110 0110 0110 1101
+5 0101 0101 0101 0101 1100
+4 0100 0100 0100 0100 1011
+3 0011 0011 0011 0011 1010
+2 0010 0010 0010 0010 1001
![Page 8: CIM_20_A4](https://reader036.vdocuments.mx/reader036/viewer/2022081816/55cf9324550346f57b9c11af/html5/thumbnails/8.jpg)
Representación de números con signo 8
+1 0001 0001 0001 0001 1000
+0 0000 0000 0000 0000 0111
-0 n/d 1000 1111 n/d n/d
-1 n/d 1001 1110 1111 0110
-2 n/d 1010 1101 1110 0101
-3 n/d 1011 1100 1101 0100
-4 n/d 1100 1011 1100 0011
-5 n/d 1101 1010 1011 0010
-6 n/d 1110 1001 1010 0001
-7 n/d 1111 1000 1001 0000
-8 n/d n/d n/d 1000 n/d
![Page 9: CIM_20_A4](https://reader036.vdocuments.mx/reader036/viewer/2022081816/55cf9324550346f57b9c11af/html5/thumbnails/9.jpg)
Fuentes y contribuyentes del artículo 9
Fuentes y contribuyentes del artículoRepresentación de números con signo Fuente: http://es.wikipedia.org/w/index.php?oldid=47755954 Contribuyentes: AldanaN, Baiji, Carmin, Diegusjaimes, Edmenb, Elultimolicantropo,Farisori, GermanX, House, Humbefa, Humberto, Ignacio Icke, Isha, JMCC1, Jatrobat, Javierito92, L30nc1t0, LordT, Magister Mathematicae, Manwë, Matdrodes, Oscar ., Queninosta, Raystorm,Rodia, Rovnet, Rubsancas, Soulreaper, Tano4595, Tirithel, Tortillovsky, Vitamine, Xosema, 103 ediciones anónimas
LicenciaCreative Commons Attribution-Share Alike 3.0 Unportedhttp:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/