Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <iomanip>
- #include <typeinfo>
- using namespace std;
- int main() {
- string num1, num2;
- string num3;
- bool flag1(false), flag2(false);
- int choose, carry = 0;
- while (flag1 == false || flag2 == false) {
- if (flag1 == false) {
- cout << "Please enter number one! \n";
- cin >> num1;
- for (int i = 0; i < num1.length(); i++) {
- if (!(num1[i] == '0' || num1[i] == '1'))
- {
- cout << " Binary1 is not valid. \n";
- flag1 = false;
- break;
- }
- else {
- flag1 = true;
- }
- }
- }
- if (flag2 == false && flag1 != false) {
- cout << "Please enter number two! \n";
- cin >> num2;
- for (int i = 0; i < num2.length(); i++)
- {
- if (!(num2[i] == '0' || num2[i] == '1'))
- {
- cout << " Binary2 is not valid. \n";
- flag2 = false;
- break;
- }
- else {
- flag2 = true;
- }
- }
- }
- }
- int size = num1.length() > num2.length() ? num1.length()-1 : num2.length()-1;
- if (num1.length() > num2.length())
- {
- num2.insert(0, num1.length()-num2.length(), '0');
- }
- else
- {
- num1.insert(0, num2.length()-num1.length(), '0');
- }
- cout << num1 << " " << num2 << endl;
- int* sum=new int[num2.length()];
- cout << "1.Sum Or 2.Minus : ";
- cin >> choose;
- // cout << typeid(choose).name() << endl;
- if (choose == 1) {
- for (int i = num1.length()-1; i >= 0; i--) {
- sum[i] = num1[i] ^ num2[i] ^ carry;
- carry = (num1[i] && num2[i]) || (carry && (num1[i] ^ num2[i]));
- }
- cout << carry;
- for (int i = 0;i <= num1.length()-1;i++) {
- cout << sum[i];
- }
- cout << endl;
- }
- if (choose == 2) {
- bool flag(false);
- carry = 0;
- for (int i = size; i >= 0; i--) {
- if (flag == true) {
- if (num2[i] == '0') {
- num2[i] = '1';
- } else {
- num2[i] = '0';
- }
- }
- if (num2[i] == '1') {
- flag = true;
- }
- }
- cout << "num2" << num2 << endl;
- for (int i = size; i >= 0; i--) {
- sum[i] = num1[i] ^ num2[i] ^ carry;
- carry = (num1[i] && num2[i]) || (carry && (num1[i] ^ num2[i]));
- }
- cout << carry;
- for (int i = 0;i <= size;i++) {
- cout << sum[i];
- }
- cout << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement