Другие языки программирования и технологии

Побитовые операции, условие внутри

Помогите пожалуйста! С++, не понимаю как это сделать и что от меня хотят...
0
0
0
0

при умножении ( даже логическом, даже побитовом ) результат равен 0 при равном 0 хотя-бы одном множителе
ИГ
Игорь Грачев
55 251
Лучший ответ
Muslim _313_ Ну это для первого случая, а там еще есть и второй и третий и даже четвертый случай!)))
for (int a, b, i = 0; i < 4; i++)
cout << "a=" << a << "\tb=" << b << "\t(a+b)ab=" << (((a=i&1)^(b=i>>1))&a&b) << endl;
Ivan Т
Ivan Т
93 261
Muslim _313_ for (int a, b, i = 0; i < 4; i++)
cout << "a=" << a << "\tb=" << b << "\t(a+b)ab=" << "\t0" << endl;
А что тут непонятного!? Вместо значков плюса и точки использовать побитовое "Исключающее ИЛИ" и "И" соответственно. И вычислить результат выражения (A Исключающее ИЛИ B) И A И B; Для A равное 0, B равное нулю; A равное единице, B равное нулю и далее по списку.
Принцип вычисления:
Для исключающего ИЛИ таблица:
a b ответ
0 0 0 Если а и в равны нулю то ноль
1 0 1 Если а или в равны единице то ответ единица
0 1 1
1 1 0 если а и в равны единице то ответ ноль
Если в двух числах будут единицы то И вернет единицу иначе ноль

для первого примера опишу.
Первым вычисляем то что в скобочках
0 Исключающее ИЛИ 0 = 0
потом результат вычисления скобочек и следующего числа
0 И 0 = 0
потом результат предыдущих вычислений и числа
0 И 0 = 0
В результате ответ для A = 0, B = 0 равен тоже 0
А дальше сами как нибудь
Сергей Коблов
Сергей Коблов
15 408
Игорь Грачев в скобках XOR ( исключающее или )
0 XOR 0 = 1