Форум программистов, компьютерный форум CyberForum.ru

Провести операцию эквивалентности над двоичными числами - C++

Восстановить пароль Регистрация
 
protoboll
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 8
08.07.2014, 09:54     Провести операцию эквивалентности над двоичными числами #1
Всем привет. Мне нужно провести операцию эквивалентности над двоичными числами. проблема в том, что я не знаю, как написать в С++ операцию эквивалентности
Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2014, 09:54     Провести операцию эквивалентности над двоичными числами
Посмотрите здесь:

Написать программу, которая демонстрирует выполнение операций с 12-разрядными двоичными числами C++
Разработать процедуру или функцию, выполняющую заданную операцию над строками. Предусмотреть и описать реакцию на некорректное задание параметров. C++
C++ Арифметические операции с двоичными числами
C++ Арифметичиские операции над двоичными числами
Строки. Произвести над каждым символом операцию побитового И C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
08.07.2014, 10:09     Провести операцию эквивалентности над двоичными числами #2
Цитата Сообщение от protoboll Посмотреть сообщение
провести операцию эквивалентности
А что это?
protoboll
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 8
08.07.2014, 10:12  [ТС]     Провести операцию эквивалентности над двоичными числами #3
Цитата Сообщение от ValeryS Посмотреть сообщение
А что это?
в алгебре логики 1 <-->1 = 1
0 <--> 1 = 0
1 <--> 0 = 0
0 <--> 0 = 1
в логике стрелочками обозначается, в с++ не знаю как
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2139 / 972 / 223
Регистрация: 30.11.2013
Сообщений: 3,241
08.07.2014, 10:13     Провести операцию эквивалентности над двоичными числами #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
int main()
{
    int a = 72;
    int b = 72;
 
    if (a^b)
        cout << "Nope" << endl;
    else
        cout << "Numbers are same!" << endl;
}

тыц
protoboll
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 8
08.07.2014, 10:16  [ТС]     Провести операцию эквивалентности над двоичными числами #5

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
int main()
{
    int a = 72;
    int b = 72;
 
    if (a^b)
        cout << "Nope" << endl;
    else
        cout << "Numbers are same!" << endl;
}
это почти то, что нужно, только в обратную сторону) хотя, видимо, нету нужного, судя по тому, что ты кинул. спасибо и на том, мб подстроюсь)
Voivoid
 Аватар для Voivoid
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,284
08.07.2014, 10:21     Провести операцию эквивалентности над двоичными числами #6
Без понятия что там у вас считается эквивалентностью, но например в STL эквивалентность определяется как-то так:
C++
1
2
3
4
template <typename T>
bool eq( const T& a1, const T& a2 ) {
  return !( a1 < a2 ) && !( a2 < a1 );
}
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
08.07.2014, 10:31     Провести операцию эквивалентности над двоичными числами #7
Цитата Сообщение от protoboll Посмотреть сообщение
в логике стрелочками обозначается, в с++ не знаю как
словами опиши
Цитата Сообщение от protoboll Посмотреть сообщение
1 <-->1 = 1
0 <--> 1 = 0
1 <--> 0 = 0
0 <--> 0 = 1

инверсия "Исключающие ИЛИ" что ли?
protoboll
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 8
08.07.2014, 10:34  [ТС]     Провести операцию эквивалентности над двоичными числами #8
Цитата Сообщение от ValeryS Посмотреть сообщение
словами опиши



инверсия "Исключающие ИЛИ" что ли?
http://ru.wikipedia.org/wiki/Эквиваленция
вот, просто везде по разному называют, а я привык эквивалентностью называть.
хотя я с названием накосячил. там даже написано, что нельзя путать эквивалентность с эквиаленцией
мой косяк
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
08.07.2014, 10:53     Провести операцию эквивалентности над двоичными числами #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
так бы и сказал сразу

if(!(a^b))

"Исключающая ИЛИ" она же "XOR" в Си определяется так ^

тебе нужна обратная "не" "инверсия" !

Код
a    b    ^     !^
0    0    0       1
0    1    1       0
1    0    1       0
1    1    0       1
protoboll
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 8
08.07.2014, 10:54  [ТС]     Провести операцию эквивалентности над двоичными числами #10
Цитата Сообщение от ValeryS Посмотреть сообщение
так бы и сказал сразу

if(!(a^b))

"Исключающая ИЛИ" она же "XOR" в Си определяется так ^

тебе нужна обратная "не" "инверсия" !

Код
a    b    ^     !^
0    0    0       1
0    1    1       0
1    0    1       0
1    1    0       1
Спасибо.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
08.07.2014, 10:57     Провести операцию эквивалентности над двоичными числами #11
А гораздо проще и логичней, по моему
сравнить эти значения

C++
1
a==b
protoboll
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 8
08.07.2014, 10:58  [ТС]     Провести операцию эквивалентности над двоичными числами #12
Цитата Сообщение от ValeryS Посмотреть сообщение
А гораздо проще и логичней, по моему
сравнить эти значения

C++
1
a==b
не, там надо именно так, как ты выше описал, там сложнее момент будет. долго описывать
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
08.07.2014, 11:58     Провести операцию эквивалентности над двоичными числами #13
Цитата Сообщение от protoboll Посмотреть сообщение
не, там надо именно так, как ты выше описал,
Я ошибся назвав ! инверсией это отрицание, а инверсия это тильда(~)

хотя и то и другое "Не"
разница вот в чем
возьмем число 5 0000 0101
!5=0 5 это не нулевое значение значит приводится к true !true=false т.е равно 0
логическая операция

~5=-6

0000 0101= 1111 1010 побитовая инверсия

так что может тебе нужно
C++
1
~(a^b)
protoboll
0 / 0 / 0
Регистрация: 08.07.2014
Сообщений: 8
08.07.2014, 12:01  [ТС]     Провести операцию эквивалентности над двоичными числами #14
спасибо, а не подскажешь еще 1 момент. я читаю файл, без разницы какой, и мне нужно разбить его на строки длинной 4 байта. те мне нужен фрагмент разбивающий строку.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2014, 12:09     Провести операцию эквивалентности над двоичными числами
Еще ссылки по теме:

C++ Написать программу на с++, которая выполняет операцию над матрицей целых чисел
C++ Дан массив. Провести арифметические действия над его элементами
C++ Выполнение арифметические действи над двоичными, восьмеричными или шестнадцатеричными числами (по блок-схеме)

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
08.07.2014, 12:09     Провести операцию эквивалентности над двоичными числами #15
могу подсказать такой путь
вводишь переменную типа unsigned int и считываешь в неё
unsigned int в 32 битных системах как раз 4 байта

или чтобы не завязываться на размер int объяви структуру из 4 unsigned char

unsigned char как раз по размеру байт
Yandex
Объявления
08.07.2014, 12:09     Провести операцию эквивалентности над двоичными числами
Ответ Создать тему
Опции темы

Текущее время: 08:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru