#include #include #include using namespace std; string decimal_to_binary(int decimal_temp) { string binary_temp; if (decimal_temp == 0) { binary_temp = "0"; } else { while (decimal_temp > 0) { if (decimal_temp % 2 == 0) { binary_temp = binary_temp + '0'; } else { binary_temp = binary_temp + '1'; } decimal_temp = decimal_temp / 2; } } //Dao nguoc chuoi binary reverse(binary_temp.begin(), binary_temp.end()); return binary_temp; } int binary_to_decimal(string binary_temp) { int to_the_power_of = binary_temp.length() - 1; int decimal_temp = 0; for (int i = 0; i < binary_temp.length(); i++) { if (binary_temp[i] == '1') { decimal_temp = decimal_temp + pow(2, to_the_power_of); } to_the_power_of--; } return decimal_temp; } int input_int() { int temp; do { cout << "Nhap mot so thap phan bat ky lon hon 0: "; cin >> temp; } while (temp < 0); return temp; } string input_string() { string temp; cout << "Nhap mot so nhi phan bat ky: "; cin >> temp; return temp; } void Menu() { int func; cout << "----------Menu----------" << endl; cout << "1: Doi tu so thap phan sang nhi phan." << endl; cout << "2: Doi tu so nhi phan sang thap phan." << endl; cout << "Nhap chuc nang: "; cin >> func; switch (func) { case 1: { int decimal = input_int(); string binary = decimal_to_binary(decimal); cout << "So nhi phan cua so ban vua nhap la: " << binary << endl; break; } case 2: { string binary = input_string(); int decimal = binary_to_decimal(binary); cout << "So thap phan cua so ban vua nhap la: " << decimal << endl; break; } default: { cout << "Ban da chon sai chuc nang, vui long nhap lai" << endl; Menu(); break; } } } int main() { Menu(); }