Is there a reason why this happens?
#include <stdio.h>
void main() {
int i, j; //Takes i as 0 with short
printf("Enter two integers: ");
scanf("%d %d", &i, &j);
printf("
%d & %d = %d
", i, j, (i & j));
printf("
%d ^ %d = %d
", i, j, (i ^ j));
printf("
%d | %d = %d
", i, j, (i | j));
if ((i | j) == (i & j) + (i ^ j))
printf("
YES
");
else
printf("
NO
");
}