Cómo se realiza una multiplicación en binario?
La multiplicación en binario es el más "fácil".Como los factores de la multiplicación sólo pueden ser 0 o 1, el producto sólo puede ser 0 o 1 al igual. Es decir que las tablas de multiplicar del cero y del uno son básicas para aprender:
- x01000101
Aquí un ejemplo:
Para entender mejor aqui se nos pidió hacer una tarea utilizando este mismo calculo y convertirlo en código Arduino para obtener numeros específicos.
El código debería funcionar, transformando el 0101 a 5.int binario[] = {0, 1, 0, 1};
int unidades[] = {0, 0, 0, 0};
int decimal = 0;// the setup routine runs once when you press reset:
void setup() {
Serial.begin(9600);
// multiplica cada bit por su respectiva potencia en base 2
unidades[3] = binario[3]*1;
unidades[2] = binario[2]*2;
unidades[1] = binario[1]*4;
unidades[0] = binario[0]*8;//suma los resultados de cada unidad para obtener el decimal
decimal = unidades[3]+unidades[2]+unidades[1]+unidades[0];
}// the loop routine runs over and over again forever:
void loop() {
Serial.println(decimal);
delay(1000);
}
Como se puede observer en el el terminal tras correr en código es que aborrecen los 5, es decir que funciono nuestra multiplicación.
La próxima parte de la tarea era escribir un código que transforme un valor hexadecimal (HEX) de un byte a decimal y mostrar el resultado en el monitor serial de Arduino:
Lo difícil de esta tarea era el uso de letras mayúsculas como valores. Para poder trabajar con estos se utilizó el componente "define" de Arduino y se pasaron las letras a sus respectivos valores decimales. Después de se aplicó el mismo procedimiento del ejercicio anterior.
//asigna los valores de las letras en hexadecimal a decimal
#define A 10
#define B 11
#define C 12
#define D 13
#define E 14
#define F 15
#define A 10
#define B 11
#define C 12
#define D 13
#define E 14
#define F 15
//ingresar aqui el valor hexadeximal
int hex[] = {F,7};
int hex[] = {F,7};
int unidades[] = {0, 0};
int decimal = 0;
int decimal = 0;
// the setup routine runs once when you press reset:
void setup() {
Serial.begin(9600);
//multiplica cada espacio por su respectiva potencia de 16
unidades[1] = hex[1]*1;
unidades[0] = hex[0]*16;
void setup() {
Serial.begin(9600);
//multiplica cada espacio por su respectiva potencia de 16
unidades[1] = hex[1]*1;
unidades[0] = hex[0]*16;
//suma los resultados de cada unidad para obtener el decimal
decimal = unidades[1]+unidades[0];
decimal = unidades[1]+unidades[0];
}// the loop routine runs over and over again forever:
void loop() {
Serial.println(decimal);
delay(1000);
}
delay(1000);
}
No hay comentarios.:
Publicar un comentario