Поразрядная операция & - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! У меня есть программа:
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;
}
Т.е. есть три числа (от 0 до 65535), Я хочу реализовать примитивную операцию коньюнкции. В результате отработки программы получаю 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;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы