diff --git a/calc_bits.cpp b/calc_bits.cpp new file mode 100644 index 0000000..9c207c7 --- /dev/null +++ b/calc_bits.cpp @@ -0,0 +1,34 @@ +#include "calc_bits.h" +#include "lab04.h" +#include +#include + +uint16_t perform_bitwise_operation(uint16_t operand1, char operation, uint16_t operand2) { + uint16_t result; + + switch (operation) { + case '&': + result = operand1 & operand2; + break; + case '|': + result = operand1 | operand2; + break; + case '^': + result = operand1 ^ operand2; + break; + default: + std::cerr << "Invalid operator. Please use '&', '|', or '^'." << std::endl; + result = 0; + break; + } + + return result; +} + +void print_calculation(uint16_t result) { + std::cout << "Result in Hex: "; + print_in_hex(result); + std::cout << "\nResult in Binary: "; + print_in_binary(result); + std::cout << std::endl; +} diff --git a/calc_bits.h b/calc_bits.h new file mode 100644 index 0000000..aca79db --- /dev/null +++ b/calc_bits.h @@ -0,0 +1,7 @@ +#ifndef CALC_BITS_H_INCLUDED +#define CALC_BITS_H_INCLUDED + + + + +#endif // CALC_BITS_H_INCLUDED diff --git a/lab04.cbp b/lab04.cbp index aef035e..d27f6c6 100644 --- a/lab04.cbp +++ b/lab04.cbp @@ -32,6 +32,7 @@ + diff --git a/lab04.h b/lab04.h index 65a1515..68c19fb 100644 --- a/lab04.h +++ b/lab04.h @@ -2,12 +2,14 @@ #define LAB04_H_INCLUDED #include #include - +#include #pragma once void print_in_hex(uint8_t byte); void print_in_hex(const void* data, size_t size); void print_in_binary(uint8_t byte); void print_in_binary(const void* data, size_t size); +uint16_t perform_bitwise_operation(uint16_t operand1, char operation, uint16_t operand2); +void print_calculation(uint16_t result); #endif // LAB04_H_INCLUDED diff --git a/main.cpp b/main.cpp index 4a9b600..34253e3 100644 --- a/main.cpp +++ b/main.cpp @@ -22,3 +22,24 @@ int main() { return 0; } + +int main_calc(){ + uint16_t operand1, operand2; + char operation; + + cout << "Enter the first operand (in hexadecimal): "; + cin >> std::hex >> operand1; + + cout << "Enter the bitwise operation (&, |, or ^): "; + cin >> operation; + + cout << "Enter the second operand (in hexadecimal): "; + cin >> std::hex >> operand2; + + uint16_t result = perform_bitwise_operation(operand1, operation, operand2); + + cout << "\nCalculation Result:" << endl; + print_calculation(result); + + return 0; +} diff --git a/source.cpp b/source.cpp index 031f455..bd9f97f 100644 --- a/source.cpp +++ b/source.cpp @@ -1,7 +1,7 @@ #include "lab04.h" #include -#include "lab04.h" +#include "calc_bits.h" void print_in_hex(uint8_t byte) { std::cout << std::hex << std::setw(2) << std::setfill('0') << static_cast(byte) << " ";