Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- #include <conio.h>
- #include <windows.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <string>
- #include <cstring>
- #include "stdio.h"
- using namespace std;
- char* sum(char *A, char *B, int dlin) {
- char *sum = new char[dlin];
- for (int i = dlin - 1; i >= 0; i--) {
- if (A[i] == '0' && B[i] == '0') {
- }
- if ((A[i] == '0' && B[i] == '1') || (A[i] == '1' && B[i] == '0')) {
- }
- if (A[i] == '1' && B[i] == '1') {
- if (A[i - 1] == '2') {
- }
- }
- }
- return sum;
- }
- int main() {
- SetConsoleOutputCP(1251);
- string l1, l2, sum;
- cout << "Введите два двоичных числа в естественной форме:" << endl;
- getline(cin, l1);
- getline(cin, l2);
- int dl1 = l1.length();
- int dl2 = l2.length();
- int dif;
- dif = dl1 - dl2;
- if (dif > 0) {
- while (dif > 0) {
- l2 = '0' + l2;
- dif--;
- }
- }
- if (dif < 0) {
- while (abs(dif) > 0) {
- dif = abs(dif);
- l1 = '0' + l1;
- dif--;
- }
- }
- dl1 = l1.length();
- while (dl1 >= 0) {
- switch (l1[dl1 - 1]) {
- case '0':
- if (l2[dl1] == '0') {
- sum = '0' + sum;
- }
- else
- sum = '1' + sum;
- case '1':
- if (l2[dl1] == '0') {
- sum = '1' + sum;
- }
- else {
- sum = '0' + sum;
- if (dl1 > 0) {
- if (l1[dl1 - 1] == '1') {
- l1[dl1 - 1] = '2';
- }
- else
- l1[dl1 - 1] = '1';
- }
- else
- sum = '1' + sum;
- }
- case '2':
- if (l2[dl1] == '0') {
- sum = '0' + sum;
- if (dl1 > 0) {
- if (l1[dl1 - 1] == '1') {
- l1[dl1 - 1] = '2';
- }
- else
- l1[dl1 - 1] = '1';
- }
- else
- sum = '1' + sum;
- }
- else {
- sum = '1' + sum;
- if (dl1 > 0) {
- if (l1[dl1 - 1] == '1') {
- l1[dl1 - 1] = '2';
- }
- else
- l1[dl1 - 1] = '1';
- }
- else
- sum = '1' + sum;
- }
- }
- dl1--;
- }
- /* if (dl1 != dl2) {
- if (dl1 > dl2) {
- while (dl1 != dl2) {
- dl2++;
- for (int i = dl2 - 1; i >= 0; i--) {
- cisl2[dl2] = '\0';
- char tmp = cisl2[i];
- cisl2[i + 1] = tmp;
- }
- cisl2[0] = '0';
- }
- }
- else
- while (dl1 != dl2) {
- dl1++;
- for (int i = dl1 - 1; i >= 0; i--) {
- cisl1[dl1] = '\0';
- char tmp = cisl1[i];
- cisl1[i + 1] = tmp;
- }
- cisl1[0] = '0';
- }
- } */
- // dl1 = dl2;
- /* if (cisl1[0] == '1') {
- for (int i = 0; i < dl1; i++) {
- if (cisl1[i] == '1') {
- cisl1[i] = '0';
- }
- else
- cisl1[i] = '1';
- }
- }
- if (cisl2[0] == '1') {
- for (int i = 0; i < dl1; i++) {
- if (cisl2[i] == '1') {
- cisl2[i] = '0';
- }
- else
- cisl2[i] = '1';
- }
- } */
- /* cout << l1 << endl;
- cout << l2; */
- cout << sum;
- getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement