Реализуйте в классе binary перегрузку четырёх операций: операция сложенияоперация вычитанияоперация умноженияоперация делениякаждая операция принимает на вход двоичное число и выдаёт ответ в виде двоичного числа. операция деления производит деление нацело.напишите программу, которая принимает на вход два бинарных числа, находит их сумму, разность, произведение и отношение и выводит их на экран в виде двоичных чисел.class binary {protected: int data[32]; // цифры двоичного числаpublic: binary(); // конструктор по умолчанию binary(int value); // конструктор, получающий двоичное число из десятичного binary(char *s); // конструктор, получающий двоичное число из строки, содержащей двоичное число void show(); // вывод двоичного числа на экран int to_int(); // перевод двоичного числа в десятичное}; binary: : binary() { for (int i = 0; i < 32; ++i) data[i] = 0; }binary: : binary(int value) { for (int i = 0; i < 32; ++i) data[i] = 0; int t = 31; while (value) { data[t--] = value % 2; value /= 2; }}binary: : binary(char *s) { int size = strlen(s)-1; for (int i = 0; i < 32; ++i) data[i] = 0; for (int i = 31; size > = 0; --size) data[i--] = s[size] - '0'; }void binary: : show() { int i = 0; while (i < 32 & & ! data[i]) ++i; if (i == 32) { cout < < 0; return; } for (; i < 32; ++i) cout < < data[i]; }int binary: : to_int() { int pow = 1, res = 0; for (int i = 31; i > = 0; --i) { res += data[i] * pow; pow *= 2; } return res; }