Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
55 / 39 / 18
Регистрация: 21.05.2015
Сообщений: 184

Инвертировать полученное двоичное число

17.10.2017, 18:36. Показов 7237. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код
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
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
 
int vichit(char* str)
  {int rezult=0;
  while(*str)
  {rezult=rezult*2+(*str++-'0');}
  return rezult;}
  
int main()
    {setlocale(LC_ALL, "");
    char number_one[16],number_two[16],raznica[16];
    ofstream input("input1.txt");
    cout << "Введите первое двоичное число ";
    cin >> number_one;
    cout << "Введите второе двоичное число ";
    cin >> number_two;
    input << number_one << endl << number_two;
    input.close();
    ofstream output("output1.txt");
    printf("%032s\n-\n%032s\n=\n%032s\n", number_one, number_two,itoa(vichit(number_one)-vichit(number_two),raznica,2));
    return 0;}
, что суммирует 2 двоичных числа.
Как в этой программе реализовать инвертирование числа в переменной raznica, перед этим отняв единицу

Добавлено через 1 минуту
Поясняю. К примеру raznica = 1010101, нужно сначала отнять 1 (будет 1010100), а затем инвертировать числе, оставив первую цифру без изменений и записать в файл ответ (будет 1101011)

Добавлено через 1 час 36 минут
Добавлю, что данное действие должно выполнятся в случае если разница чисел получается отрицательной, а если >=0, то оставить как есть

Добавлено через 23 минуты
Цитата Сообщение от Programist_NKPC Посмотреть сообщение
char number_one[16],number_two[16],raznica[16];
Поправка, не
C++
1
[16]
, а
C++
1
[17]
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2017, 18:36
Ответы с готовыми решениями:

Дано двузначное число. Вывести число, полученное при перестановке цифр исходного числа.
Скоро экзамен , кто чем может ) Помоги ближнему , ибо смех продлевает жизнь...) 4. Дано двузначное число. Вывести число,...

Дано трехзначное число. Вывести число, полученное при прочтении исходного числа справа налево.
Скоро экзамен , кто чем может ) Помоги ближнему , ибо смех продлевает жизнь...) 5. Дано трехзначное число. Вывести число,...

Дано трёхзначное число.Найти число полученное при перестановке первой и второй цифр заданного числа.
Дано трёхзначное число.Найти число полученное при перестановке первой и второй цифр заданного числа.

7
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
17.10.2017, 22:28
Ну и вводи сразу числа.
0
55 / 39 / 18
Регистрация: 21.05.2015
Сообщений: 184
18.10.2017, 00:20  [ТС]
Цитата Сообщение от nmcf Посмотреть сообщение
Ну и вводи сразу числа.
Не понял? Числа я вручную ввожу. Меня интересует процедура инвертирования, при условии отрицательного значения результата
0
2 / 2 / 1
Регистрация: 13.10.2017
Сообщений: 29
18.10.2017, 01:12
Я бы сделал так
Разбил полученное число на цифры, забивая в массив
Либо после либо в том же цикле загнать массив под условие если а[0]==1 то а[0]=0 иначе а[0]=1
Вывод в файл?
Если я тебя правильно понял
freopen("output.txt","w",stdout);
Работает и в си и в си ++
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
18.10.2017, 14:48
Вычитание у тебя сделано обычной арифметикой. Ну значит, и единицу так же можешь вычесть и инверсию использовать.
0
55 / 39 / 18
Регистрация: 21.05.2015
Сообщений: 184
18.10.2017, 16:26  [ТС]
Цитата Сообщение от nmcf Посмотреть сообщение
Вычитание у тебя сделано обычной арифметикой. Ну значит, и единицу так же можешь вычесть и инверсию использовать.
Может и смогу, скажи как
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
18.10.2017, 18:13
C++
1
~(vichit(raznica) - 1)
0
55 / 39 / 18
Регистрация: 21.05.2015
Сообщений: 184
18.10.2017, 23:52  [ТС]
Спасибо за код, но я не знаю как пристроить его к моей программе. В случае, если второе введённое число больше первого, то результат ведёт себя неясно - выводит число с большим количеством единиц подряд, а поэтому условие к выводу работает не корректно (пример снизу)
Миниатюры
Инвертировать полученное двоичное число  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.10.2017, 23:52
Помогаю со студенческими работами здесь

Дано трехзначное число. Найти число, полученное при перестановке второй и третьей цифр заданного числа
Помогите решить пожалуйста. Дано трехзначное число. Найти число, полученное при перестановке второй и третьей цифр заданного числа. С++

Дано трехзначное число.Найти число,полученное при перестановке первой и второй цифт заданного числа.
Вот друг ещё дал 3 задачи.Т.к У него задолжности эти 3 задача: Дано трехзначное число.Найти число,полученное при перестановке первой...

Дано трехзначное число. Вывести число, полученное при перестановке цифр сотен и десятков исходного числа (напр
Помогите пожалуйста Добавлено через 37 секунд Дано трехзначное число. Вывести число, полученное при перестановке цифр сотен и...

Дано трехзначное натуральное число А. В нём зачеркнули последнюю справа цифру и приписали её в начале. Найти полученное число
Дано трехзначное натуральное число А. В нём зачеркнули последнюю справа цифру и приписали её в начале. Найти полученное число.

Преобразовать строку, содержащую произвольную последовательность нулей и единиц (двоичное число), в целое число
Помогите пожалуйста с заданием Написать функцию, которая преобразует строку, содержащую произвольную последовательность нулей и единиц...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru