Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ARQUITECTURA DE COMPUTADORAS 1
ALUMNOS:
2
1. DESARROLLO
// *************************
// Declaración de variables
// *************************
// se define una unión para poder visualizar los bits de un dato de coma flotante.
union float_integer {
float flotante;
};
union float_integer float_dato; // dato de coma flotante (puede ser accedido como
entero o como flotante)
// *************************
// Sección de setup()
// *************************
void setup() {
Serial.begin(9600);
delay(1000);
3
// *************************
// Sección de loop()
// *************************
void loop() {
Serial.println("****************");
Serial.println("Prueba #01");
byte_var = 28;
Serial.println(byte_var, BIN);
Serial.println("****************");
Serial.println("");
Serial.println("****************");
Serial.println("Prueba #02");
char_var = 28;
Serial.println(char_var, BIN);
Serial.println("****************");
Serial.println("");
Serial.println("****************");
Serial.println("Prueba #03");
char_var = -28;
Serial.print(char_var, BIN);
Serial.println(" -> para este número solo considerar los 8 bits de la derecha.");
Serial.println("****************");
Serial.println("");
Serial.println("****************");
Serial.println("Prueba #04");
char_var = -128;
4
Serial.println(char_var, DEC);
Serial.println("****************");
Serial.println("");
Serial.println("****************");
Serial.println("Prueba #05");
char_var = 28;
Serial.print(char_var, BIN);
Serial.print(int_var, BIN);
Serial.println("****************");
Serial.println("");
Serial.println("****************");
Serial.println("Prueba #06");
char_var = -28;
Serial.print(char_var, BIN);
Serial.println(" -> para este número solo considerar los 8 bits de la derecha.");
Serial.print(int_var, BIN);
Serial.println(" -> para este número considerar todos los bits (32 bits).");
Serial.println("****************");
Serial.println("");
Serial.println("****************");
5
Serial.println("Prueba #07");
Serial.println(float_var, 5);
Serial.println(int_var, DEC);
Serial.println(float_var, DEC);
Serial.println("****************");
Serial.println("");
Serial.println("****************");
Serial.println("Prueba #08");
Serial.println(float_var, 5);
Serial.println(int_var, DEC);
Serial.println(float_var, DEC);
Serial.println("****************");
Serial.println("");
Serial.println("****************");
Serial.println("Prueba #09");
float_dato.flotante = -1.6328125;
Serial.println(float_dato.flotante, 7);
Serial.println(float_dato.entero, BIN);
Serial.println("****************");
Serial.println("");
6
Serial.println("****************");
Serial.println("Prueba #10");
float_dato.flotante = -1.6328121345;
Serial.print(char_array);
Serial.println(float_dato.flotante, 10);
Serial.println(float_dato.entero, BIN);
Serial.println("****************");
Serial.println("");
Serial.println("****************");
Serial.println("Prueba #11");
float_dato.flotante = -1.0000000000000012;
Serial.print(char_array2);
Serial.println(float_dato.flotante, 16);
Serial.println(float_dato.entero, BIN);
Serial.println("****************");
Serial.println("");
Serial.println("****************");
Serial.println("Prueba #12");
float_dato.flotante = -1.6328125;
float_dato.flotante /= 0;
Serial.println(float_dato.flotante, 7);
char_var = -28;
char_var /= 0;
7
Serial.println(char_var, DEC);
Serial.println("****************");
Serial.println("");
while (1);
Prueba #01
11100
// Aquí está el numero 28 (variable “byte_var”, que representa un entero sin signo de 8
bits) transformado en binario
Prueba #02
11100
// En este caso el número es el -28, también declarado como entero con signo. Como se
puede apreciar, está en binario y se utiliza el sistema de representación complemento a
2.
Prueba #04
-128
//El número es el -128, también declarado como entero con signo; se lo multiplica por -1
para obtener su opuesto, pero en lugar de visualizarse 128 se obtiene el mismo número.
Esto se debe a que el valor máximo positivo de una variable char es 127.
Prueba #05
8
//En este caso primero muestra el número 28 en binario como variable de 8 bits, y abajo
muestra su conversión a una variable de 32 bits (no se visualizan los ceros adelante, el
valor correcto sería 00000000000000000000000000011100)
Prueba #06
Prueba #07
0.03125
31
0.0310000000
//En este caso al valor de tipo flotante 0.03125 se lo multiplica por 1000 y se lo
transforma a un entero de 32 bits quedando como resultado 31 (sin coma ya que esta
pasado a un entero, perdiéndose parte del valor original); de aquí se lo divide por 1000 y
se lo pasa a flotante nuevamente. Como se puede visualizar, el nuevo número es
diferente al original, debiéndose esto al cambio de tipo de valor usado.
Prueba #08
0.03125
3125
0.0312500000
//Esta prueba es similar al anterior, pero en lugar de 1000 se lo multiplica por 100000,
lo que hace que al convertirse nuevamente no se pierdan los datos iniciales.
Prueba #09
-1.6328125
10111111110100010000000000000000
9
//En este caso se declara un valor flotante negativo, y como la función permite que el
dato pueda ser accedido como entero o como flotante, además del valor negativo
también se imprime el valor en binario del mismo y el resto de los bits se completa con
0.
Prueba #10
-1.6328121424
10111111110100001111111111111101
//En este caso el valor varía debido a que en la segunda línea esta expresado como coma
flotante, por lo que el valor se redondea; luego se visualiza el valor que esta redondeado
en binario.
Prueba #11
-1.0000000000000000
10111111100000000000000000000000
//En este caso ocurre similar a la prueba 10, el número se redondea haciendo que el
valor mostrado sea diferente. En cuanto a su representación en binario, se completa con
0 hacia su derecha para visualizar 32 bits.
Prueba #12
inf
**B0100000063f694 Š
//El caso número 12 el valor se divide por 0, mostrándose en pantalla “inf” de infinito
en el caso de un valor flotante; en el otro caso sin embargo figura un error debido a que
el valor debe ser representado como una variable entera con signo de 8 bits, cosa que no
es posible para el infinito.
10