Está en la página 1de 3

Primera lista de problemas

Eduardo Virue na Silva


20 de febrero de 2014
1. Escriba los n umeros reales dados a la base que se indica:
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 en binario
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 en octal
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 en hexadecimal
Encuentra alguna relacion entre la expansion binaria y la octal?
Encuentra alguna relacion entre la expansion binaria y la hexadecimal?
2. Dado un n umero escrito en binario, su expansion puede separarse en gru-
pos de 3 bits a partir del punto binario. Cada uno de esos grupos puede
escribirse en octal y con esto puede obtenerse rapidamente la expansion
octal del n umero.
Es esto cierto? Si lo es, pruebelo; si no, de un contraejemplo.
Sugerencia: La suma
n

k=0
x
k
2
k
puede escribirse agrupando la suma en bloques de tres bits:
n

k=0

2
0
x
3k
+ 2
1
x
3k+1
+ 2
2
x
3k+2

2
3k
sume los bloques y vea entre que n umeros se encuentran las sumas. Luego
observe que 2
3k
= 8
k
, sustituya. Luego de un argumento que justique
que esta es realmente la expansion octal.
3. Dado un n umero escrito en binario, su expansion puede separarse en gru-
pos de 4 bits a partir del punto binario. Cada uno de esos grupos puede
escribirse en hexadecimal y con esto puede obtenerse rapidamente la ex-
pansion hexadecimal del n umero.
Es esto cierto? Si lo es, pruebelo; si no, de un contraejemplo.
Sugerencia: Siga la sugerencia del ejercicio anterior con bloques de 4 bits.
1
4. Eval ue las siguientes expresiones en C:
10 + 020 + 0x30
5 << 3
6 >> 2 <<1
(5>4 || 8<7)
5+6 | 16
(-4 < 3) * 8 + 2
!!5
~~5
4^6
6<5<4
6>5>4
5. Diga que escribe el segmento de programa que sigue:
int a, b;
a= 8;
b= 12;
a= a^b;
b= a^b;
a= a^b;
cout << "a= " << a << " b= " << b << endl;
Que pasara si en lugar de 8 y 12 se usaran otros valores enteros?
6. Considere el segmento de programa que sigue:
int a, b;
a= 8;
b= 12;
a= a+b;
b= a-b;
a= a-b;
cout << "a= " << a << " b= " << b << endl;
2
Si la computadora tuviera precision innita, podramos sospechar que este
segmento de codigo intercambia los valores de a y b, pero no hay tal, la
precision de las computadoras es nita.
Tambien en la aritmetica de las computadoras ocurrira el intercambio o
se perdera informacion al hacer las sumas (si se hicieran entre n umeros
muy grandes)?
Sugerencia: Intente con aritmetica de 4 bits y luego trate de generalizar.
7. Considere las proposiciones siguientes:
int a, b;
cin >> a;
b= (a<2)*4 + (2<=a && a<=4)* 8 + (4<a)* 5;
cout << "b= " << b << endl;
Dado un entero a, determine que escriben las proposiciones.
8. Haga un programa que calcule el maximo de dos n umeros reales dados.
9. Haga un programa que calcule el mnimo de tres n umeros reales dados.
10. Haga un programa que, dado un n umero entero entre 0 y 12, haga la tabla
de multiplicar de ese n umero dado.
3

También podría gustarte