Dave what can I do to make this better?
#include
#include
#include
#include
#include
#include
#include
unsigned char swapNibbles(unsigned char x) {
return ((x & 0x0F) << 4) | ((x & 0xF0) >> 4);
}
int binaryToDecimal(const std::string& binary) {
int result = 0;
for (char c : binary) {
result = (result << 1) + (c - '0');
}
return result;
}
std::string binaryToHex(const std::string& binaryCode) {
std::bitset<8> bits(binaryToDecimal(binaryCode));
std::stringstream ss;
ss << std::hex << std::setw(2) << std::setfill('0') << static_cast
return ss.str();
}
std::string hexToBinary(const std::string& hexCode) {
std::bitset<8> binary(std::stoi(hexCode, nullptr, 16));
return binary.to_string();
}
std::string binaryToASCII(const std::string& binaryCode) {
std::string result;
for (size_t i = 0; i < binaryCode.length(); i += 8) {
std::bitset<8> bits(binaryCode.substr(i, 8));
char asciiChar = static_cast
result += asciiChar;
}
return result;
}
void decodeHex(const std::string& hexCode) {
std::string binaryCode = hexToBinary(hexCode);
std::cout << "Binary Code: " << binaryCode << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(2)); // Pause for 2 seconds
std::string asciiText = binaryToASCII(binaryCode);
std::cout << "Decoded ASCII: " << asciiText << std::endl;
}
int main() {
std::string runProgram;
std::cout << "Would you like to run the program? (Yes/No): ";
std::cin >> runProgram;
if (runProgram == "Yes" || runProgram == "yes" || runProgram == "Y" || runProgram == "y") {
std::string binaryCode;
std::cout << "Enter binary code: ";
std::cin >> binaryCode;
std::this_thread::sleep_for(std::chrono::seconds(2)); // Pause for 2 seconds
std::string hexCode = binaryToHex(binaryCode);
std::cout << "Hex Code: 0x" << hexCode << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(2)); // Pause for 2 seconds
decodeHex(hexCode);
} else {
std::cout << "Program brrrr." << std::endl;
}
return 0;
}
Output:
Would you like to run the program? (Yes/No): y
Enter binary code:
(input)10011010110100110010101010101101001
Hex Code: 0x69
Binary Code: 01101001
Decoded ASCII: i
...Program finished with exit code 0
Press ENTER to exit console.