Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2021, 21:16   #1
Radon33
Пользователь
 
Регистрация: 22.10.2021
Сообщений: 34
По умолчанию Двухразрядный полный сумматор

Описать на языке C# двухразрядный полный сумматор в алгебре
Жегалкина. На вход сумматора подаются разряды слагаемых a2, a1, b2, b1, и
входной перенос p1. На экран вывести разряды суммы c2, c1 и выходной
перенос p3.

Как добавить в код входной и выходной переносы? И вообще правильно ли написан код?
Код:
            Console.WriteLine("┌-----------------------------┐");
            Console.WriteLine("|Двухразрядный полный сумматор|");
            Console.WriteLine("└-----------------------------┘");
            Console.WriteLine();
            Console.WriteLine("Введите a1 в двоичной СС: ");
            int a1 = int.Parse(X(Console.ReadLine(), 2));
            Console.WriteLine("Введите a2 в двоичной СС: ");
            int a2 = int.Parse(X(Console.ReadLine(), 2));

            Console.WriteLine("Сумма равна: {0}", Convert.ToString(a1 + a2, 2));
            Console.ReadLine();

            Console.WriteLine("Введите b1 в двоичной СС: ");
            int b1 = int.Parse(X(Console.ReadLine(), 2));
            Console.WriteLine("Введите b2 в двоичной СС: ");
            int b2 = int.Parse(X(Console.ReadLine(), 2));

            Console.WriteLine("Сумма равна: {0}", Convert.ToString(b1 + b2, 2));
            Console.ReadLine();
        }
        public static string X(string q1, int q)
        {
            string c1;
            const string figure = "01";
            int d = 0;
            for (int i = 0; i < q1.Length; i++)
            {
                d = q * d + figure.IndexOf(q1[i]);
            }
            c1 = d.ToString();
            return c1;
        }
        public static string Y(string q1, int q)
        {
            string c1;
            const string figure = "01";
            int d = 0;
            for (int i = 0; i < q1.Length; i++)
            {
                d = q * d + figure.IndexOf(q1[i]);
            }
            c1 = d.ToString();
            return c1;
        }

Последний раз редактировалось BDA; 16.11.2021 в 23:41.
Radon33 вне форума Ответить с цитированием
Старый 16.11.2021, 23:53   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Складывать надо не a1 с a2 и b1 с b2, а двухразрядные числа a2a1 и b2b1 и перенос p1. На входе программы пять однобитовых чисел. Нужно реализовать сумматор https://en.wikipedia.org/wiki/Adder_...:Fulladder.gif (статья). Только вам нужно два таких сумматора, соединенные последовательно. А еще, из-за того, что у вас алгебра Жегалкина, нужно OR выразить через AND и XOR.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 17.11.2021, 13:20   #3
Radon33
Пользователь
 
Регистрация: 22.10.2021
Сообщений: 34
По умолчанию

BDA, Спасибо
Radon33 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Накапливающий сумматор Maximus9 Помощь студентам 1 23.12.2017 10:40
Накопительный сумматор BlackOrange Компьютерное железо 1 09.04.2012 06:48
Сумматор saniabez Компьютерное железо 2 29.03.2012 15:44