Поразрядная операция & - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д