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

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

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

Author24 — интернет-сервис помощи студентам
Ввести символьную строку, которая задает двоичное выражение в форме:
число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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2021, 19:24
Ответы с готовыми решениями:

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

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

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

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

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

0
07.12.2021, 19:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2021, 19:24
Помогаю со студенческими работами здесь

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

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

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

Как используя командную строку ввести символьную строку?
Как используя командную строку ввести символьную строку?

Ввести символьную строку.
Помогите решить задачу с объяснениями. Ввести символьную строку. Перед каждым сиимволом &quot;a&quot;...

задание, где в командную строку надо ввести арифметическое выражение (x+y-z*z) и получить ответ
Вводится строка символов (не более 50), представляющая собой запись выражения с целочисленными...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru