C/Data Type/Bitwise XOR

Материал из C\C++ эксперт
Версия от 15:18, 20 апреля 2011; 82.179.191.127 (обсуждение) (добавление более простой функции xor)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Bitwise calculation

#include <stdio.h>
int main(void)
{
  int i;
  i = 100;
  printf("initial value of i: %d\n", i);
  i = i ^ 219;
  printf("i after first XOR: %d\n", i);
  i = i ^ 219;
  printf("i after second XOR: %d\n", i);
  return 0;
}


Perform a logical XOR operation using the two arguments

#include <stdio.h>
int xor(int a, int b);
int main(void)
{
  printf("%d", xor(1, 0));
  printf("%d", xor(1, 1));
  printf("%d", xor(0, 1));
  printf("%d", xor(0, 0));
  return 0;
}
int xor(int a, int b)
{
  return (a || b) && !(a && b);
}


the xor() function

  
#include <stdio.h>
int xor(int a, int b);
int main(void)
{
  int p, q;
  printf("enter P (0 or 1): ");
  scanf("%d", &p);
  printf("enter Q (0 or 1): ");
  scanf("%d", &q);
  printf("P AND Q: %d\n", p && q);
  printf("P OR Q: %d\n", p || q);
  printf("P XOR Q: %d\n", xor(p, q));
  return 0;
}
int xor(int a, int b)
{
  return (a || b) && !(a && b);
}

Все же проще воспользоваться сл. функцией:

int xor(int a, int b)
{
  return a^b;
}