Universidad Rey Juan Carlos Grado en Ingeniería de Computadores
Tecnología de Computadores
SOLUCIONES HOJA DE PROBLEMAS 2. SISTEMA BINARIO DE REPRESENTACIÓN NUMÉRICA
1. Convertir los siguientes números binarios a sus equivalentes decimales: a. 001100
g. 100001
b. 000011
h. 111000
c. 011100
i. 11110001111
d. 111100
j. 11100.011
e. 101010
k. 110011.10011
f. 111111
l. 1010101010.1
Solución: a. 001100BP=(23+22)10=1210 b. 000011BP=(21+20)10=310 c. 011100BP=(24+23+22)10=2810 d. 111100BP=(25+24+23+22)10=6010 e. 101010BP=(25+23+21)10=4210 f. 111111BP=(25+24+23+22+21+20)10=6310 g. 100001BP=(25+20)10=3310 h. 111000BP=(25+24+23)10=5610 i. 11110001111BP=(210+29+28+27+23+22+21+20)10=193510 j. 11100.011BP=(24+23+22+2-2+2-3)10=28.37510 k. 110011.10011BP=(25+24+21+20+2-1+2-4+2-5)10=51.5937510 l. 1010101010.1BP=(29+27+25+23+21+2-1)10=682.510
1
2. Convertir los siguientes números decimales a sus equivalentes binarios: a. 64
f. 500
b. 100
g. 34.75
c. 111
h. 25.25
d. 145
i. 27.1875
e. 255
j. 23.1
Solución: Mediante el método de las sucesivas divisiones por 2, encontramos que lo siguiente:
a. 6410=(26)10=1000000BP b. 10010=(26+25+22)10=(64+32+4)10=1100100BP c. 11110=(26+25+23+22+21+20)10=(64+32+8+4+2+1)10=1101111BP d. 14510=(27+24+20)10=(128+16+1)10=10010001BP e. 25510=(27+26+25+24+23+22+21+20)10=(128+64+32+16+8+4+2+1)10=11111111BP f. 50010=(28+27+26+25+24+22)10=(256+128+64+32+15+4)10=111110100BP g. Para la parte entera: 3410=(25+22)10=(32+2)10=100010BP Para la parte fraccionaria, seguimos el método de multiplicaciones sucesivas por 2: 0.75 · 2 = 1.5 0.5 · 2 = 1.0
1
→
1
→
Por tanto: 34.7510=100010.11BP
h. Para la parte entera: 2510=(24+23+20)10=(16+8+1)10=11001BP Para la parte fraccionaria: 0.25 · 2 = 0.5 0.5 · 2 = 1.0
0
→
1
→
Por tanto: 25.2510=11001.01BP
i. Para la parte entera: 2710=(24+23+21+20)10=11011BP Para la parte fraccionaria: 0
0.1875 · 2 = 0.375
→
0.375 · 2 = 0.75
→
0
0.75 · 2 = 1.5
1
→
2
0.5 · 2 = 1.0
1
→
Por tanto: 27.187510=11011.0011BP
j. Para la parte entera: 2310=(24+22+21+20)10=(16+4+2+1)10=10111BP Para la parte fraccionaria: 0.1 · 2 = 0.2
→
0
0.2 · 2 = 0.4
→
0.4 · 2 = 0.8
→
0.8 · 2 = 1.6
→
0.6 · 2 = 1.2
→
0 0 1 1
0.2 · 2 = 0.4 0 y así sucesivamente, pues la representación de este número es periódica en binario puro. Por tanto: 23.110= 10111.0 00110 BP
3. Convertir los siguientes números enteros hexadecimales en sus equivalentes decimales: a. C b. 9F c. D52 d. 67E e. ABCD
Solución: a. C16=1210. b. 9F16=(9·161+15·160)10=15910 c. D5216=(13·162+5·161+2·160)10=341010 d. 67E16=(6·162+7·161+14·160)10=166210 e. ABCD16=(10·163+11·162+12·163+13·160)10=4398110
3
4. Convertir los siguientes números hexadecimales a sus equivalentes decimales: a. F.4 b. D3.E c. 111.1 d. 888.8 e. EBA.C
Solución: a. F.416=(15·160+4·16-1)10=15.2510 b. D3.E16=(13·161+3·160+14·16-1)10=211.87510 c. 111.116=(1·162+1·161+2·160+1·16-1)10=273.062510 d. 888.816=8·111.116=2184.510 e. EBA.C16=(14·162+11·161+10·160+12·16-1)10=3770.7510
5. Convertir los números (AF315)16 y (7326)8 a base 10 y base 2. Solución: AF31516=(10·164+15·163+3·162+1·161+5·160)10=71758910 Por otro lado, convirtiendo cada dígito hexadecimal en su equivalente binario, encontramos: AF31516= 10101111001100010101 BP { {{{ {
A
F
3
1
5
73268=(7·83+3·82+2·81+6·80)10=379810 Igualmente: 73268= 111011010110 BP {{{ {
7
3
2
6
4
6. Convertir los números (245.625)10 y (1797.223)10 a binario, octal y hexadecimal. Solución: a. Para pasar a binario, consideramos primero la parte entera: 24510=(27+26+25+24+22+20)10=(128+64+32+16+4+1)10=11110101BP Para la parte fraccionaria, multiplicamos sucesivamente por 2: 0.625 · 2 = 1.25
→
0.25 · 2 = 0.5
0
0.5 · 2 = 1.0
→
→
1
1
Luego: 245.62510=11110101.101BP Pasar a octal, teniendo el binario, es inmediato: 245.62510= 011110101.101 BP=365.58 { {{ {
3
6
5
5
Ídem para hexadecimal: 245.62510= 11110101.1010 BP=F5.A16 {{ {
5
F
A
b. Consideremos de nuevo sólo la parte entera: 179710=(210+29+28+22+20)10=11100000101BP Para la parte fraccionaria: 0.223 · 2 = 0.446
→
0
0.446 · 2 = 0.892
→
0.892 · 2 = 1.784
→
0.784 · 2 = 1.568
→
0.568 · 2 = 1.136
→
0.136 · 2 = 0.272
→
0 1 1 1 0 (y así sucesivamente hasta encontrar el valor periódico).
Luego: 1797.22310=11100000101.001110...BP Pasar a octal es inmediato: 1797.22310= 011100000101.001110 BP=3405.16...8 { {{ { { {
3
4
0
5
1
6
Ídem para hexadecimal: 1797.22310= 011100000101.0011 BP=705.3...16 {{ { {
7
0
5
5
3
7. Convertir el número (49403180.AF7)16 a binario, octal y decimal. Solución: Para pasar a binario, expandimos cada dígito hexadecimal en su equivalente binario: 49403180.AF716= 0100 1001 0100 0000 0011 0001 1000 0000.1010 1111 0111BP Para octal, podemos reagrupar de 3 en 3 el número binario: 49403180.AF716=11120030600.53678 Por último, para pasar a decimal, utilizamos la fórmula habitual de potencias de 16: 49403180.AF716=(4·167+9·166+4·165+3·163+1·162+8·161+10·16-1+15·16-2+ +7·16-3)10=(1.2289437·109)10
8. Convertir los siguientes números de base 10 a base 2, base 5, base 8 y base 16 y verificar los resultados: a. 13 b. 94 c. 356
Solución: Pasar pasar de base 10 a base 2, habrá que dividir sucesivamente por 2 e ir recogiendo los restos de las divisiones. De forma análoga se procederá para pasar a base 5, 8 y 16.
a. 1310=(23+22+20)10=(8+4+1)10=1101BP 1310=(2·51+3·50)10=(10+3)10=235 1310= 001101 BP=158 {{
1
5
1310=D16
b. 9410=(26+24+23+22+21)10=(64+16+8+4+2)10=1011110BP 9410=(3·52+3·51+4·50)10=(75+15+4)10=3355 9410= 001011110 BP=1368 {{{
1
3
6
9410= 01011110 BP=5E16 {{
5
E
6
c. 35610=(28+26+25+22)10=(256+64+32+4)10=101100100BP 35610=(2·53+4·52+1·51+1·50)10=(250+100+5+1)10=24115 35610= 101100100 BP=5448 { {{
5
4
4
35610= 000101100100 BP=16416 {{ {
1
6
4
9. Dado el número X=(543.21)6, expresarlo en base 16 con cuatro dígitos fraccionarios y los dígitos enteros que sea necesario.
Solución: La solución propuesta consiste en hacer un cálculo intermedio para pasar el número X a base decimal, y luego, a hexadecimal: 543.216=(5·62+4·61+3·60+2·6-1+1·6-2)10= 207.361 10 Pasemos a hexadecimal, dividiendo la parte entera sucesivamente por 16: 20710=(12·161+15·160)10=CF16 Con respecto a la parte fraccionaria, multiplicamos sucesivamente por 16 hasta obtener 4 dígitos: 0.361 · 16 = 5.7 0.7 · 16 = 12.4
5
→
12
→
0.4 · 16 = 7.1
→
0.1 · 16 = 1.7
→
C
→
7
1
0.7 ... (periódicamente) Luego: 543.216= 207.361 10= CF .5C 71 16
7
10. Convertir los siguientes números de base 10 a base 2. a. .00625 b. 43.32 c. .51
Solución: a. Por el método de multiplicaciones sucesivas, obtenemos lo siguiente: 0.00625 · 2 = 0.0125
→
0
0.0125 · 2 = 0.025
→
0
0.025 · 2 = 0.05
→
0
0.05 · 2 = 0.1
0
→
0.1 · 2 = 0.2
→
0
0.4 · 2 = 0.8
→
0.8 · 2 = 1.6
→
0.6 · 2 = 1.2
→
0.2 · 2 = 0.4
→
0 1 1 0
0.4 ... (periódicamente) Luego: 0.0062510= 0.000000110 2
b. Parte entera: 4310=(25+23+21+20)10=101011BP Para la parte fraccionaria: 0.32 · 2 = 0.64
→
0
0.64 · 2 = 1.28
→
0.28 · 2 = 0.56
→
0.56 · 2 = 1.12
→
0.12 · 2 = 0.24
→
0.24 · 2 = 0.48
→
0.48 · 2 = 0.96
→
0.96 · 2 = 1.92
→
0.92 · 2 = 1.84
→
1 0 1 0 0 0 1 1 8
0.84 · 2 = 1.68
1 (y así sucesivamente).
→
Luego: 43.3210=101011.0101000111...BP
c. Para este caso tenemos: 0.51 · 2 = 1.02
→
1
0.02 · 2 = 0.04
→
0.04 · 2 = 0.08
→
0.08 · 2 = 0.16
→
0.16 · 2 = 0.32
→
0.32 · 2 = 0.64
→
0.64 · 2 = 1.28
→
0.28 · 2 = 0.56
→
0.56 · 2 = 1.12
→
0 0 0 0 0 1 0 1 (y así sucesivamente).
Luego 0.5110 = 0.100000101BP
11. Escribir el equivalente de base 8 de los siguientes números en base 2: a. 10111100101 b. 1101.101 c. 1.0111
Solución: Reagrupando los dígitos binarios de 3 en 3 obtenemos los siguientes resultados:
a. 010111100101 BP=27458 { { {{
2
7
4
5
b. 001101.101 BP=1558 {{ {
1
5
5
c. 001.011100 BP=1.348 { {{
1
3
4
9
12. Calcular para las secuencias de 16 bits dadas su representación octal y hexadecimal: A = 0000 0110 0000 0111 B = 0000 0000 1101 0110 C = 1100 0001 1111 0011 D = 1001 0000 0000 1010
Solución: A= 0000011000000111 BP=60716= 000000011000000111 BP=30078 {{{{
0
6
0
7
{ { {{ {{
0
0
3
0
7
0
B= 0000000011010110 BP=D616= 000000000011010110 =3268 { { {{
0
0
D
6
{ { {{{ {
0
0
0
3
2
6
C= 1100000111110011 BP=C1F316= 001100000111110011 BP=1407638 { { {{
C
1
F
3
{ {{ { {{
1
4
0
7
6
3
D= 1001000000001010 BP=900A16= 001001000000001010 BP=1100128 {{ { {
9
0
0
A
{{{ { {{
1
1
0
0
1
2
13. Calcular el valor decimal de los números binarios (11100111) y (10111111) suponiendo que están representados en complemento a 2. Repetir el ejercicio suponiendo que están representados en complemento a 1. a) Representación C2: 11100111C2 es un número negativo, ya que el primer bit es 1. Para calcular el decimal correspondiente, lo pasamos a positivo mediante la operación de C2: C2(11100111)=00011001C2, cuya representación coincide en binario puro. Luego: 00011001C2=00011001BP=(24+23+20)10=(16+8+1)10=+2510 Por tanto: 11100111C2=−2510
Alternativa: podemos calcular directamente el valor decimal de la siguiente manera: 11100111C2=(−27+26+25+22+21+20)10=(−128+64+32+4+2+1)10=−2510 Hagamos lo mismo con el otro número: 10111111C2 es también negativo por la misma razón que en el caso anterior. Lo pasamos a positivo mediante la operación de C2: 10
C2(10111111)=01000001C2=01000001BP=(26+20)10=(64+1)10=+6510 Por tanto: 10111111C2=−6510
Alternativa: calculando el decimal directamente, resulta: 10111111C2=(−27+25+24+23+22+21+20)10=(−128+32+16+8+4+2+1)10=−6510
b) Representación C1: 11100111C1 es un número negativo, ya que el primer bit es 1. Lo pasamos a positivo mediante la operación de C1: C1(11100111)=00011000C1 (invertir ceros y unos). Este número coincide con su representación en binario puro. Entonces: 00011000C1=00011000BP=(24+23)10=(16+8)10=+2410 Por tanto: 11100111C1=−2410 Análogamente: 10111111C1 es también negativo. Lo pasamos a positivo con la operación de C1: C1(10111111)=01000000C1=01000000BP=(26)10=6410. Entonces: 10111111C1=−6410
14. Resolver los ejercicios siguientes: a. Representar (-499)10 en magnitud y signo con 10 bits. b. Representar (-628)10 en complemento a 2 con 10 bits. c. Convertir a base 10 el número binario 1001000110, dado en magnitud y signo. d. Convertir a base 10 el número binario 1110011101, dado en complemento a 2. e. ¿Cuál es el rango del sistema de numeración de complemento a 2 con 10 bits? f. ¿Cuál es el mínimo número de bits necesarios para poder representar cantidades en el rango ±105 utilizando el sistema de complemento a 2? Solución: a. Como se trata de un número negativo, el bit de signo será 1. Vamos a calcular por tanto la magnitud. Para ello pasamos 49910 a binario puro. Por sucesivas divisiones por 2, encontramos que: 49910=(28+27+26+25+24+21+20)10=(256+128+64+32+16+2+1)10=111110011BP Por tanto: 49910=1111110011MS
11
b. Con sólo 10 bits, no podemos representar (-628)10 en C2, ya que el rango de representación es [-512, 511].
c. Para convertir 1001000110MS a decimal, hay que tener en cuenta que el bit de signo es 1, luego es un número negativo. En cuanto a la magnitud: 001000110BP=(27+22+21)10=(128+4+2)10=13410 Luego: 1001000110MS=−13410
d. Podemos convertir 1110011101C2 a decimal de dos maneras: 1) Directamente: 1110011101C2=(−29+28+27+24+23+22+20)10=(−512+256+128+16+8+4+1)10=−9910 2) Calculando el C2 para el número a positivo y luego convertirlo a decimal como en BP: C2(1110011101)=0001100011C2=(26+25+21+20)10=(64+32+2+1)10=+9910 Luego 1110011101C2=−9910
e. Para el C2 con 10 bits, el rango de representación es: [−29,+29−1]=[−512,511] f. Para poder representar 10000010 en C2, antes que nada vamos a ver cuántos bits necesita en BP. Para ello, sin tener que realizar la conversión, podemos averiguarlo mediante el logaritmo en base 2 de este número: log2(100000)=log10(100000)/log10(2)~16.6 Luego son necesarios 17 bits para representar dicho número en BP. Como en C2 el primer bit es un bit de signo, en total necesitaremos 18 bits.
12
15. La primera expedición a Marte encontró sólo las ruinas de una civilización. De los artefactos y de las imágenes, los exploradores dedujeron que las criaturas que construyeron esta civilización fueron seres de cuatro piernas con un tentáculo saliente de un extremo con varios “dedos” prensiles. Después de mucho estudio, los exploradores fueron capaces de traducir las matemáticas marcianas. Encontraron la siguiente ecuación: 5x2- 50x + 125 = 0 con las soluciones indicadas x=5 y x=8. El valor x=5 parece bastante lógico, pero x=8 requiere alguna explicación. Luego los exploradores reflexionaron sobre la forma en que se desarrollaron los sistemas numéricos de la tierra y encontraron evidencia de que el sistema marciano tenía una historia similar. ¿Cuántos dedos tenían los marcianos? 16. Emparejar las siguientes combinaciones binarias de 8 bits con sus valores en base 10 y los sistemas en que se encuentran representadas, justificando las respuestas (¡si algún valor en una columna no puede emparejarse será imprescindible indicarlo explícitamente!): Combinación binaria a) 10000111 b) 10111011 c) 10100011 d) 00110000 e) 10000110 f) 11100111 g) 11100000 h) 11000001 i) 01111001 j) 01011111
Número en base 10 y sistema utilizado 1) 48 en magnitud y signo 2) –163 en complemento a 1 3) –121 en complemento a 2 4) –96 en binario puro 5) 95 en complemento a 1 6) –121 en complemento a 1 7) 121 en binario puro 8) –103 en magnitud y signo 9) –63 en complemento a 2 10) 187 en complemento a 2
13
14
17. Emparejar las siguientes combinaciones binarias de 8 bits con sus valores en base 10 y los sistemas en que se encuentran representadas, justificando las respuestas (¡si algún valor en una columna no puede emparejarse será imprescindible indicarlo explícitamente!). Combinación binaria a) 01100101 b) 10111001 c) 11011111 d) 01001001 e) 00011110 f) 10010110 g) 00100110 h) 11001110 i) 01110011 j) 11110011
Número en base 10 y sistema utilizado 1) –73 en complemento a 2 2) 38 en complemento a 1 3) 30 en módulo y signo 4) –13 en complemento a 2 5) 101 en binario puro 6) –95 en módulo y signo 7) –140 en complemento a 1 8) –71 en complemento a 2 9) –49 en complemento a 1 10) –22 en binario puro
Solución: Vamos a convertir los números de la columna de la derecha a sus equivalentes en binario, para ver si aparecen en la columna izquierda.
1) -73 en C2: Puede verse fácilmente que: +73=64+8+1=26+23+20, luego +7310 es 01001001C2. Para calcular -7310, hallamos el C2 de este número. Entonces: -7310 = C2(010010001)=10110111C2, que no está en la lista izquierda.
2) 38 en C1: Descomponemos: 38=32+4+2=25+22+21, luego 3810=00100110C1, que corresponde a g.
3) 30 en MS: Como es un número positivo, el bit de signo es 0. Por otro lado, 30=16+8+4+2=24+23+22+21, luego 3010=00011110MS, que corresponde a e.
4) -13 en C2: Por un lado, +13=8+4+1=23+22+20, luego +1310=00001101C2. Para calcular -1310, hallamos el C2 de este número. Entonces: 15
-1310=C2(00001101)=11110011C2, que corresponde a j.
5) 101 en BP: Puede verse que 101=64+32+4+1=26+25+22+20, luego 10110=01100101BP, que corresponde a a.
6) -95 en MS: Como es un número negativo, el bit de signo es 1. Por otro lado, +95=64+16+8+4+2+1=26+24+23+22+21+20, luego -9510=11011111MS, que corresponde con c.
7) -140 en C1. Con 8 bits, este número no es representable en C1, ya que el rango es: [-127, +127]. Por tanto, no corresponde a ninguna respuesta de la columna izquierda.
8) -71 en C2. Por un lado, +71=64+4+2+1=26+22+21+20, luego +7110=01000111C2. Para calcular -7110, hallamos el C2 de este número. Entonces: -7110=C2(01000111)=10111001C2, que corresponde con b.
9) -49 en C1. Por un lado, +49=32+16+1=25+24+20, luego +4910=00110001C1. Para calcular -4910, hallamos el C1 de este número. Entonces: -4910=C1(00110001)=11001110C1, que corresponde con h.
10) -22 en BP. Por ser un número negativo, no se puede representar en binario puro. Por tanto, los emparejamientos quedan así: a
5
b
8
c
6 16
e
3
g
2
h
9
j
4
18. Sumar los siguientes números binarios, mostrando todos los acarreos: 110101+11001 101110+100101 19. Determinar en cuáles de las siguientes operaciones (con operandos representados en Ca2 de 4 bits), el resultado no es correctamente representable, es decir, se produce desbordamiento: 0110+0101 0000-1111 1001-1011 0100-1110 1001+1111 0000+1111 20. Establecer una regla de desbordamiento para la suma de números enteros en Ca2. 21. Hallar el valor decimal, la suma y la diferencia de los números binarios A=11100111 y B=10111111, su suma y diferencia, suponiendo que: a. Ambos están representados en MS. b. Ambos están representados en Ca2. c. Ambos están representados en Ca1.
Solución: a. Si están en magnitud y signo, ambos números son negativos, pues el bit de signo en ambos casos es 1. Calculemos el valor decimal viendo el módulo: |A|=1100111BP=(26+25+22+21+20)10=(64+32+4+2+1)10=10310 |B|=0111111BP=(25+24+23+22+21+20)10=(32+16+8+4+2+1)10=6310 Por tanto: A=−10310 y B=−6310. Procedamos a sumar: como ambos números son negativos, hay que sumar los módulos y al resultado le colocamos un bit de signo 1:
17
1 1 0 0 1 1 1 + 0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 Problema: como sólo disponemos de 7 bits para representar el módulo, se ha producido un desbordamiento. Por tanto, en MS no es representable el resultado de la suma. Hagamos la resta. Para ello, comprobamos que |A|>|B|, con lo que haremos la resta A-B. Como A es más negativo que B, el resultado de la operación también es negativo y llevará un bit de signo 1: 1 1 0 0 1 1 1 −
0 1 1 1 1 1 1
0 1 0 1 0 0 0
Por tanto A-B = 10101000MS
b. Si los números están en C2: A=11100111C2=(−27+26+25+22+21+20)10=(−128+64+32+4+2+1)10=−2510 B=10111111C2=(−27+25+24+23+22+21+20)10=(−128+32+16+8+4+2+1)10=−6510 Procedamos a sumar: 1 1 1 0 0 1 1 1 + 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 En C2 despreciamos el acarreo superior. Por tanto, el resultado de A+B=10100110C2. Hagamos la resta. Para ello, basta sumar al minuendo el C2 del sustraendo: C2(B)=C2(10111111)=01000001C2 Luego: 1 1 1 0 0 1 1 1 + 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 18
Despreciando el acarreo superior, el resultado queda: A-B=00101000C2.
c. Repitamos ahora el cálculo para C1: A=11100111C1 ⇒ −A=C1(A)=00011000C1=(24+23)10=(16+8)10=2410 ⇒ A=−24C1 B=10111111C1 ⇒ −B=C1(B)=01000000C1=(26)10=6410 ⇒ B=−64C1 Hagamos la suma: 1 1 1 0 0 1 1 1 + 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 +
1
1 0 1 0 0 1 1 1
El acarreo superior se desprecia, pero en estos casos, hay que sumar una unidad al resultado. Por tanto: A+B=10100111C1. Vamos a por la resta: Para ello hay que sumarle al minuendo el C1 del sustraendo: C1(B)=C1(10111111)=01000000C1 1 1 1 0 0 1 1 1 + 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 +
1
0 0 1 0 1 0 0 0
Despreciamos el acarreo superior, pero igual que en el caso anterior, es preciso sumar una unidad al resultado. Por tanto: A-B=00101000C1.
19
22. Utilizando la aritmética binaria y habiendo convertido previamente a binario los operandos, realizar las siguientes operaciones: a. (695)10 + (272)10 b. (695)10 - (272)10 c. (272)10 * (23)10
Solución: a. Pasemos primero ambos números a binario puro: 69510 = (29+27+25+24+22+21+20)10 = (512+128+32+16+4+2+1)10 = 1010110111BP 27210 = (28+24)10=(256+16)10 = 100010000BP 1 0 1 0 1 1 0 1 1 1 + 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1
b. Pasemos a restar: 1 0 1 0 1 1 0 1 1 1 −
0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1
c. Vamos a multiplicar, teniendo en cuenta que: 2310 = (24+22+21+20)10=(16+4+2+1)10=10111BP 1
+
0
0
0
1
0
0
0
0
×
1
0
1
1
1 0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
20
0
0
d. Vamos a dividir, teniendo en cuenta que 1610=10000BP:
−
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
−
0
0
0
0
0
0
0
0
1
0
0
−
0
0
0
0
0
0
0
1
0
0
0
−
0
0
0
0
0
0
1
0
0
0
0
−
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
23. Realizar las siguientes operaciones, suponiendo primero que los sumandos están representados en MS, luego en Ca2 y Ca1. a. 100110+000100 b. 101101111-010000111 c. 000010000+11100001 d. 10110,1111-11100,111 e. 0000,10000+11,100001
24. Utilizando la aritmética binaria y suponiendo que los operandos están representados en complemento a 2, realizar las operaciones: a. 101101111 - 10000111 b. 000010000 + 11100001
Solución: a. El primer número es negativo (bit de signo 1), mientras que el segundo es positivo (bit de signo 0). Por tanto, para hacer la diferencia hay que sumar los módulos y cambiar de signo. Vamos a pasar a positivo el minuendo: C2(101101111)=010010001. Entonces:
21
0 1 0 0 1 0 0 0 1 + 0 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 Sin embargo, vemos que se ha producido desbordamiento, pues hemos sumado dos números positivos (bit de signo 0) y hemos obtenido un resultado negativo (bit de signo 1). Por tanto, el resultado de la operación no puede representarse con 9 bits en C2.
b. En este caso ambos números son positivos (bit de signo 0). Por tanto, los sumamos sin más:
0 0 0 0 1 0 0 0 0 + 0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 Por tanto, el resultado es 11110001C2.
25. Calcular la suma y resta tanto en binario como en hexadecimal de (1797,223)10 y (245,625)10. 26. Se dispone de un sistema de representación R de 8 bits. Dadas dos cantidades binarias A=01100110 y B=11011001, se pide realizar la suma X=A+B en binario y comentar el resultado obtenido: a. Suponiendo que el sistema R es binario puro. b. Suponiendo que el sistema R es magnitud y signo. c. Suponiendo que el sistema R es complemento a 2.
Solución: a. Supongamos que R es binario puro. Entonces: 0
1 1 0 0 1 1 0
+ 1
1 0 1 1 0 0 1
1 0
0 1 1 1 1 1 1
22
Se produce acarreo superior. Como nuestro sistema de representación sólo dispone de 8 bits, el resultado de esta suma no podría representarse y se produciría un desbordamiento. Puede comprobarse que A=01100110BP=10210 y B=11011001BP=21710.
b. Supongamos que R es MS. Entonces A es un número positivo (bit de signo 0) y B es un número negativo (bit de signo 1). Como A>B, entonces A+B se reduce a calcular la resta |A| – |B| y el resultado es positivo (bit de signo 0): 0 1 1 0 0 1 1 0 –
1 1 0 1 1 0 0 1 0 0 0 0 1 1 0 1
Puede comprobarse que A=01100110MS=10210 y B=11011001MS=–8910.
c. Para R es C2, también vemos que A es positivo y B es negativo. Hacemos la suma en C2: 0
1 1 0 0 1 1 0
+ 1
1 0 1 1 0 0 1
1 0
0 1 1 1 1 1 1
En este tipo de representación, despreciamos el acarreo superior. Por tanto, el resultado es: A+B=00111111C2. Puede comprobarse que A=01
27. Sean dos números A=(2,7)10 y B=(0’2)10. Se pide lo siguiente: a. Convertir A y B a binario con 8 cifras fraccionarias. b. Calcular en binario X=2*A + 4*B, utilizando 8 cifras fraccionarias. c. Convertir el número X obtenido en el apartado anterior a base 10. d. Comentar el resultado obtenido en d) comparándolo con el resultado exacto real.
23
28. Sea un número entero binario X de 6 bits expresado en un determinado sistema de representación R (binario puro, módulo y signo o complemento a 1 ó a 2). Se sabe que la representación del número X+15 es 000010, que X-3 es 110000 y que 2*X es 100110, todas ellas expresadas en el mismo sistema de representación R. ¿Cuál es el sistema en el que están representadas? ¿Cuál es el número X, expresado en el sistema R? ¿Cuál es su valor expresado en base 10? Solución: Vamos a operar por el método de reducción al absurdo. a) Supongamos que el sistema de representación R es binario puro. De esta manera: X+1510=000010BP=210, de lo que se deduce que X=210−1510=−1310. Pero esto es absurdo, pues en binario puro no se pueden representar números negativos. b) Supongamos que R es magnitud-signo. Entonces: X+1510=000010MS=210 (bit de signo 0 (bit de signo 1
positivo). De lo que se deduce que X=−1310=101101MS
→
negativo).
→
Por otro lado, X−310=−1610, que en MS corresponde a 110000MS, lo cual coincide con el enunciado. Por último, 2*X=−2610=111010MS, pero esto es absurdo, ya que según el enunciado 2*X=100110. c) Supongamos ahora que R es C1. Entonces: X+1510=000010C1=210, luego X=−1310=110010C1 (ya que +1310=001101C1). Por otro lado, X−310=−1610=101111C1 (ya que +1610=010000C1). Pero esto es absurdo, pues el enunciado dice que X−310=110000. d) Por eliminación, hemos averiguado que el sistema de representación es C2. Calculemos ahora el valor de X: Por un lado, X+1510=000010C2=210, luego X=−1310=110011C2, con lo que ya sabemos el valor de X. Por otro lado: X−310=110000C2=−1610. Efectivamente: −1610=110000C2, ya que +1610=010000C2. Por último, 2*X=100110C2=−2610. Efectivamente: −2610=100110C2, ya que +2610=011010C2. 24
29. Responder razonadamente a las siguientes preguntas: a. ¿Cómo se puede convertir un número en complemento a 2 a su representación en complemento a 1? b. ¿Cómo se puede convertir un número en complemento a 1 a su representación en complemento a 2? c. ¿Cómo se puede convertir un número en complemento a 2 a su representación en módulo y signo? d. ¿Cómo se puede convertir un número en módulo y signo a su representación en complemento a 2? 30. Calcular la resta binaria 110101 - 100110. Posteriormente convertir al sistema decimal los datos y el resultado. Comprobar que la resta es correcta. 31. Calcular la suma haxadecimal AB5 + 9F2. Convertir datos y resultado en sus equivalentes decimales y comprobar que la suma es correcta. 32. Convertir al sistema binario y multiplicar 31B * 2A. Indicar el resultado en hexadecimal. Posteriormente convertir datos y resultado de base 16 a base 10 mediante el método de suma de series y comprobar el resultado. 33. Convertir a binario y calcular la división 33390 / 42 (ejercicio largo).
25