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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PinkPink
9 / 9 / 2
Регистрация: 10.05.2012
Сообщений: 279
#1

Когда будет верно условие? - C++

16.11.2012, 23:46. Просмотров 472. Ответов 18
Метки нет (Все метки)

маненький вопрос, при каких начениях будет верно условие
((ac^bc)&~(ac|cc))!=0
не могу никак разобраться с этими поразрядными операциями, не пойму описание, примерно такое "если соответствующий бит одного и только одного операнда равен 1"
какой соответствующий? что-то не въезжаю,
есть 2 числа int 4 и 7 и как получить результат 4^7?

вообщем в зависимости от вашего желания, либо объясните при каких значениях будет верно условие, либо объясните как это определить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 23:46     Когда будет верно условие?
Посмотрите здесь:

Верно ли условие - C++
Верно ли что минимальные элементы всех столбцов в матрице А находятся в разных строках? Вот мой бред, что тут не так? : #include...

Прямоугольный треугольник, не проходит условие, хотя все верно! - C++
Привет. Решал задачу: Заданы целочисленные координаты вершин треугольника на плоскости. Необходимо определить, является ли данный...

почему не работает условие когда х=3 - C++
#include <iostream.h> #include <math.h> int main() { double z11,x,p=0.85,q=2.15; cout<<"Vvedi x: "; cin>>x; ...

Записать условие, которое является истинным, когда: - C++ - C++
а) каждое из чисел X и Y нечетное; б) только одно из чисел X и Y меньше 20; в) хотя бы одно из чисел X и Y =0; г) каждое из чисел...

Записать условие, которое является истинным, когда: - C++ - C++
а) каждое из чисел X и Y нечетное; б) только одно из чисел X и Y меньше 20; в) хотя бы одно из чисел X и Y =0; г) каждое из чисел...

Когда переменная будет const? - C++
Всем привет, вот меня заинтересовал вопрос, я объявил char test = "t"; и компилятор говорит, что это const, когда переменная при таком...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
16.11.2012, 23:52     Когда будет верно условие? #2
Ну идеальный вариант: напишите программу, подставляйте свои ac,bc, cc и смотрите на результат пытаясь понять как это получилось
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
16.11.2012, 23:54     Когда будет верно условие? #3
самообучение еще никто не отменял:
Битовые операции

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Gepar Посмотреть сообщение
Ну идеальный вариант: напишите программу, подставляйте свои ac,bc, cc и смотрите на результат пытаясь понять как это получилось
((ac^bc)&~(ac|cc))
по этой формуле голова лопнет =)

PinkPink
9 / 9 / 2
Регистрация: 10.05.2012
Сообщений: 279
16.11.2012, 23:56  [ТС]     Когда будет верно условие? #4
Цитата Сообщение от Gepar Посмотреть сообщение
Ну идеальный вариант: напишите программу, подставляйте свои ac,bc, cc и смотрите на результат пытаясь понять как это получилось
подставляю у меня почему то условие всегда false поэтому и спрашиваю, в каком же случае true будет
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 00:02     Когда будет верно условие? #5
Цитата Сообщение от PinkPink Посмотреть сообщение
в каком же случае true будет
если bc==~ac
PinkPink
9 / 9 / 2
Регистрация: 10.05.2012
Сообщений: 279
17.11.2012, 00:05  [ТС]     Когда будет верно условие? #6
Цитата Сообщение от Croessmah Посмотреть сообщение
если bc==~ac
спасибо!
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 00:13     Когда будет верно условие? #7
Цитата Сообщение от PinkPink Посмотреть сообщение
спасибо!
Это только один вариант
ValeryS
Модератор
6537 / 5003 / 460
Регистрация: 14.02.2011
Сообщений: 16,640
17.11.2012, 00:42     Когда будет верно условие? #8
Цитата Сообщение от Croessmah Посмотреть сообщение
если bc==~ac
с какого перепугу (для одного бита)
ac=1
bc=0
bc^ac=1
ac|cc =1
~(ac|cc)=0
1&0=0
не получается
вот примерно условие
bc!=ac и ac!=~cc
при ac=0;
bc==~cc;
тогда
((ac^bc)&~(ac|cc))!=0
((0^bc)&~(0|cc))!=0
(bc&~cc)!=0
(bc&~(~bc))!=0
(bc&bc)!=0
bc!=0

еще добавить что bc!=0 и cc!=~0

при таких условиях сработает при любом ac не равном 0


я бы так сформулировал если bc и ac не равны 0 и не равны между собой и cc не равна -1 и ac не равна инверсному cc

Добавлено через 5 минут
даже так bc и ac не равны
ac не равна инверсному cc
и ac не равна 0
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 00:46     Когда будет верно условие? #9
Цитата Сообщение от ValeryS Посмотреть сообщение
я бы так сформулировал если bc и ac не равны 0 и не равны между собой и cc не равна -1
Да ладно?
ac = 0100
bc = 1000
cc = 1000
ac^bc = 1100
ac|cc = 1100
~1100 = 0011
ну естественно результат 0
ValeryS
Модератор
6537 / 5003 / 460
Регистрация: 14.02.2011
Сообщений: 16,640
17.11.2012, 00:57     Когда будет верно условие? #10
Цитата Сообщение от Croessmah Посмотреть сообщение
Да ладно?
мдя
недокумекал (я все в один разряд крутил мысли)
а вообще здесь возможно общее рещение(чето я уже запутался) или тупо перебор
явно вижу что при
bc==ac не исполняется
при
ac ==~cc не исполняется
дальше затык
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 01:07     Когда будет верно условие? #11
Цитата Сообщение от ValeryS Посмотреть сообщение
недокумекал (я все в один разряд крутил мысли)
Я исходил из того, что при ac^bc будет всегда 1, и если хоть один бит в (ac|bc) равен 0, то результат не будет равен нулю.
Но косяк, когда в ac или cc все биты равны 1 я знаю, но увы, поделать с этим ничего не могу )))
ValeryS
Модератор
6537 / 5003 / 460
Регистрация: 14.02.2011
Сообщений: 16,640
17.11.2012, 01:12     Когда будет верно условие? #12
Цитата Сообщение от Croessmah Посмотреть сообщение
при ac^bc будет всегда 1,
не понял как всегда?
ac==bc получи 0
Цитата Сообщение от Croessmah Посмотреть сообщение
Но косяк, когда в ac или cc все биты равны 1 я знаю, но увы, поделать с этим ничего не могу
в сумме(логической) равны
ac =1010
cc =0101
ac|cc=1111
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 01:13     Когда будет верно условие? #13
Цитата Сообщение от ValeryS Посмотреть сообщение
не понял как всегда?
ac==bc получи 0
В моем варианте же bc=~ac, поэтому при ac^bc у них все биты будут разные. =)))
Накрапал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int main(){
    int bc;
    for(int ac=0;ac<5;ac++){
        bc=~ac;
        for(int cc=-10;cc<10;cc++){
            if (((ac^bc)&~(ac|cc))==0){
                cout<<"ac = "<<ac<<"\t"<<"cc = "<<cc<<endl;
            }
        }
    }   
    system("pause");
}
ValeryS
Модератор
6537 / 5003 / 460
Регистрация: 14.02.2011
Сообщений: 16,640
17.11.2012, 01:30     Когда будет верно условие? #14
Цитата Сообщение от Croessmah Посмотреть сообщение
bc=~ac, поэтому при ac^bc у них все биты будут разные. =)))
не поверишь одинаковые и равны 1

0000
1111
-----
1111

1010
0101
-----
1111
ну и так далее

Добавлено через 2 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
for(int ac=0;ac<5;ac++){
* * * * bc=~ac;
* * * * for(int cc=-10;cc<10;cc++){
работаешь с int перейди на char проще разбираться будет

Добавлено через 4 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
Накрапал:
ну и что получилось? закономерность какая нибудь прослеживается?
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 01:30     Когда будет верно условие? #15
Цитата Сообщение от ValeryS Посмотреть сообщение
не поверишь одинаковые и равны 1
Вы меня не поняли.
при bc=~ac
операция ac^bc всегда даст все биты, установленные в 1, что нам и нужно, чтобы не было нулей в результате.
ну и что получилось? закономерность какая нибудь прослеживается?
А вообще, при bc=~ac, результат будет равен нулю в том случае, если ac|cc = -1(все биты равны 1)
ValeryS
Модератор
6537 / 5003 / 460
Регистрация: 14.02.2011
Сообщений: 16,640
17.11.2012, 01:33     Когда будет верно условие? #16
подожди вгляделся в твою программку
у тебя
Цитата Сообщение от Croessmah Посмотреть сообщение
if (((ac^bc)&~(ac|cc))==0)
у ТС
Цитата Сообщение от PinkPink Посмотреть сообщение
((ac^bc)&~(ac|cc))!=0
или это так задумано?
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 01:34     Когда будет верно условие? #17
Цитата Сообщение от ValeryS Посмотреть сообщение
или это так задумано?
так задумано, чтобы выводить результаты только когда результат равен нулю, ибо остальные нас не интересуют.
ValeryS
Модератор
6537 / 5003 / 460
Регистрация: 14.02.2011
Сообщений: 16,640
17.11.2012, 01:49     Когда будет верно условие? #18
Цитата Сообщение от Croessmah Посмотреть сообщение
ac|cc = -1
ну я про это и писал
Цитата Сообщение от ValeryS Посмотреть сообщение
ac ==~cc не исполняется
хотя сейчас вижу не полное условие
cc =-1 на ac наплевать
вот это
Цитата Сообщение от PinkPink Посмотреть сообщение
~(ac|cc)
можно так разложить?
(~ac)&(~cc)
ничего не путаю ?
для битов это условие верное для байтов не помню(подзабыл теорию)
мозги уже не соображают, завтра додумаю
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2012, 02:28     Когда будет верно условие?
Еще ссылки по теме:

Как сделать чтобы программа закрывалась, когда условие выполнено? - C++
// Это програма выщитывает корни дискриминанта. 27.08.2013, 16.05 #include &lt;iostream&gt; using namespace std; int main() { ...

Записать условие, которое является истинным, когда только одно из чисел А и В четное - C++
Здравствуйте. Помогите пожалуйста написать задачи. 1)Записать условие, которое является истинным, когда только одно из чисел А и В...

Записать условие, которое является истинной, когда только одно из чисел А, В и С меньше 50 - C++
Записать условие, которое является истинной, когда только одно из чисел А, В и С меньше 50. Записал вот так: if (a &lt; 50 || b &lt;...

Записать условие, которое является истинным, когда целое А не кратно трем и оканчивается нулем - C++
Записать условие, которое является истинным, когда целое А не кратно трем и оканчивается нулем.


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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
12979 / 7291 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
17.11.2012, 02:28     Когда будет верно условие? #19
Цитата Сообщение от ValeryS Посмотреть сообщение
можно так разложить?
(~ac)&(~cc)
ничего не путаю ?
да, так раскладывается, но не вижу в этом особого смысла.
Yandex
Объявления
17.11.2012, 02:28     Когда будет верно условие?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru