Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 28.09.2021
Сообщений: 16

Ввести символьную строку, которая задает двоичное выражение в форме: число1  число2 где число1 и число2 – двоичные коды

07.12.2021, 19:24. Показов 591. Ответов 0

Студворк — интернет-сервис помощи студентам
Ввести символьную строку, которая задает двоичное выражение в форме:
число1  число2
где число1 и число2 – двоичные коды двух произвольных целых чисел
одинаковой длины,  – знак булевой операции: & , | или ^ , которую нужно
выполнить над этими числами (перед знаком и за ним может быть записан
пробел). Выделить из введенной строки оба операнда и знак операции,
превратить операнды в числа и выполнить над ними заданную операцию.
Результат напечатать в десятичной и шестнадцатеричной форме,
использовав соответствующие спецификации.

Помогите пожайлуйста, я не понимаю, как сделать так, чтобы операции выполнялись над двоичным кодом, то есть пользователь должен ввести двоичный код и результат тоже должен быть в двоичном коде, который затем нужно перевести в десятичное число.
мой код только операции выполняются над десятичными числами.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
#include <stdlib.h> 
#include <ctype.h> 
#include <string.h>
 
int main() {
    int i, j, check, numb[2], signEnd; 
    char calculation[24], sign;
 
    system("chcp 1251");
 
    printf("\n\nУведіть вираз у форматі n @ m , де @ бажаний знак арифметичної операції : ");
    do {
        check = 0;
        signEnd = 0;
        fgets(calculation, 24, stdin); //введення виразу та перевірка
        for (i = 0; i < (strlen(calculation)); i++) {
            if (isdigit(calculation[i]) || calculation[i] == '\n' || calculation[i] == ' ');
            //ігноруємо цифри, символ нового рядка на пробіл
            else if (calculation[i] == '&' || calculation[i] == '^' || calculation[i] == '|') {
                sign = calculation[i]; //при знаходжені знаку записуємо його 
                signEnd++; //рахуємо к-сть знаків
            }
            else { //якщо інший символ - вираз не пройшов перевірку
                check = 1;
                break;
            }
        }
        if (signEnd != 1 || check) { //якщо знаку нема або їх декілька - вираз не пройшов перевірку
            check = 1;
            printf("\nПомилка введення! Повторіть спробу ще раз : ");
        }
    } while (check);
 
    j = 0;
    char* p = strtok(calculation, "&^|"); // вказівник на лексеми
    while (p != NULL) { // ділимо на лексеми і відразу переводимо їх у числа
        numb[j] = atoi(p);
        j++;
        p = strtok(NULL, "\n"); // пошук наступної лексеми
    }
 
    printf("\n\nОбчислення : ");
    switch (sign) {
    case '&':
        printf("%d & %d = %lld", numb[0], numb[1], (long long int)numb[0] & (long long int)numb[1]);
        break;
    case '|':
        printf("%d | %d = %lld", numb[0], numb[1], (long long int)numb[0] | (long long int)numb[1]);
        break;
    case '^':
        printf("%d ^ %d = %lld", numb[0], numb[1], (long long int)numb[0] ^ (long long int)numb[1]);
        break;
    }
 
    getchar(); getchar();
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.12.2021, 19:24
Ответы с готовыми решениями:

Ввод пяти чисел и найти значение выражения число1 + (число3 + число2)/число5 – число2 * число4
Задание: Ввод пяти чисел и найти значение выражения число1 + (число3 + число2)/число5 – число2 * число4. procedure...

Вычислить значение выражения <число1> <знак> <число2> на C++
Вычислить значение выражения: &lt;число1&gt; &lt;знак&gt; &lt;число2&gt;, где &lt;знак&gt; - один из символов, обозначающих арифметическое действие (+,...

Дана цепочка символов вида "число1/число2-число3". Вычислить числовое значение выражения
Программисты,требуется ваша помощь.Помогите решить задачи Тема:строковые данные:описание,обработка 2. Дана цепочка символов вида...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.12.2021, 19:24
Помогаю со студенческими работами здесь

Как выбрать из определённой таблицы нужное число1 ?
помогите с формулой.

Есть лист Excel в некотрая ячейка содержит текст1 я хочу на VBA справа от текст1 вывести число1
Subj

Написать рекурсивную функцию перевода десятичного числа в двоичное и используя ее найти и вывести на печать двоичные коды первых 100 чисел Фибоначчи
Написать рекурсивную функцию перевода десятичного числа в двоичное и используя ее найти и вывести на печать двоичные коды первых 100 чисел...

Как ввести символьную строку и переписать в новую строку без пробелов?
Как ввести символьную строку и переписать в новую строку без пробелов?Пожалуйста помогите! Формат ввода данных: Введите строку а роза...

Ввести символьную строку и переписать в новую строку без пробелов
ВВЕСТИ СИМВОЛЬНУЮ СТРОКУ И ПЕРЕПИСАТЬ В НОВУЮ СТРОКУ БЕЗ ПРОБЕЛОВ


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru