Поразрядная операция & - C (СИ)
Формулировка задачи:
Здравствуйте!
У меня есть программа:
Т.е. есть три числа (от 0 до 65535), Я хочу реализовать примитивную операцию коньюнкции.
В результате отработки программы получаю 0.
Проверил вручную:
unsigned short int con(unsigned short int x, unsigned short int y, unsigned short int z);
unsigned short int con(unsigned short int x, unsigned short int y, unsigned short int z) { return x&y&z; }
#include <stdio.h>
int main(void) {
printf("\n\nConjction:");
printf("\nConjction [3402,101,5678] = %d", con(3402,101,5678));
return 0;
}3402 -> 0000 1101 0100 1010 101 -> 0000 0000 0110 0101 5678 -> 0001 0110 0010 1110 x&y&z-> 0000 0000 0000 0000
Задание: Разработать функцию,выполняющую базовую логическую операцию - коньюнкция для 3 входов типа short.Где ЛОЖЬ: 0-100, ИСТИННА - 101-65535 Собственно вопрос в следующем: Верно ли работает моя программа? Просто мне казалось что для 3402,101,5678 моя функция коньюнкции должна бы выдать значение ИСТИННА (т.е. быть как минимум 101)Решение задачи: «Поразрядная операция &»
textual
Листинг программы
int MyAnd( int a,int b, int c)
{
a=a>100;
b=b>100;
c=c>100;
return (a&b&c)*101;
}