//VARIABLES
// Numeros que se usaran para las operaciones X(num1),Y(num2)
byte num1 = 50;
byte num2 = 30;
// DE SUMA
byte resultado;
// DE RESTA A C2
byte complementoA2;
byte resultadoA2;
// DE MULTIPLICACION
byte resultadoM;
byte resultadoM2;
// DE DIVISION
byte resultadoD;
byte resultadoD2;
// AND
byte resultadoAND;
// OR
byte resultadoOR;
// XOR
byte resultadoXOR;
// NOT
byte resultadoNOT;
byte resultadoNOT2;
// ~X+Y
byte resultadoNXY;
// XNOR
byte resultadoXNOR;
// NAND
byte resultadoNA;
// NOR
byte resultadoNOR;
void setup() {
Serial.begin(9600);
//SUMA EN 8 BITS
resultado = num1 + num2;
Serial.print("La suma de los dos números es: ");
Serial.println(resultado, BIN);
Serial.println(resultado);
//RESTA A COMPLEMENTO 2
complementoA2 = ~num2 + 1;
resultadoA2 = num1 + complementoA2;
Serial.print("El resultado de la resta es: ");
Serial.println(resultadoA2, BIN);
Serial.println(resultadoA2);
//MULTIPLICACION
resultadoM = num1 << 1;
Serial.print("El resultado de la multiplicacion del primer numero es:");
Serial.println(resultadoM, BIN);
Serial.println(resultadoM);
resultadoM2 = num2 << 1;
Serial.print("El resultado de la multiplicacion del segundo numero es:");
Serial.println(resultadoM2, BIN);
Serial.println(resultadoM2);
//DIVISION
resultadoD = num1 >> 1;
Serial.print("El resultado de la division del primer numero es:");
Serial.println(resultadoD, BIN);
Serial.println(resultadoD);
resultadoD2 = num2 >> 1;
Serial.print("El resultado de la division del segundo numero es");
Serial.println(resultadoD2, BIN);
Serial.println(resultadoD2);
//AND
resultadoAND = num1 & num2;
Serial.print("AND:");
Serial.println(resultadoAND, BIN);
Serial.println(resultadoAND);
//OR
resultadoOR = num1 | num2;
Serial.print("OR:");
Serial.println(resultadoOR, BIN);
Serial.println(resultadoOR);
//XOR
resultadoXOR = num1 ^ num2;
Serial.print("OR:");
Serial.println(resultadoXOR, BIN);
Serial.println(resultadoXOR);
//NOT
resultadoNOT = ~num1;
resultadoNOT2 = ~num2;
Serial.print("NOT del primer numero:");
Serial.println(resultadoNOT, BIN);
Serial.println(resultadoNOT);
Serial.print("NOT del segundo numero:");
Serial.println(resultadoNOT2, BIN);
Serial.println(resultadoNOT2);
// ~X+Y
resultadoNXY = (~num1) | num2;
Serial.print("Resultado de ~X + Y:");
Serial.println(resultado, BIN);
Serial.println(resultado);
// XNOR
resultadoXNOR = ~(num1 ^ num2);
Serial.print("XNOR de X y Y:");
Serial.println(resultadoXNOR, BIN);
Serial.println(resultadoXNOR);
// NAND
resultadoNA = ~(num1 & num2);
Serial.print("NAND de X y Y:");
Serial.println( resultadoNA, BIN);
Serial.println( resultadoNA);
// NOR
resultadoNOR = ~(num1 | num2);
Serial.print("NOR de X y Y:");
Serial.println(resultadoNOR, BIN);
Serial.println(resultadoNOR);
}
void loop() {
}