1 // Test logical and bitwise AND and OR 2 3 int test(int x, int y) { 4 int v = x || y; 5 return v; 6 } 7 8 int test2(int x, int y) { 9 if(x | y) { 10 return 1; 11 } else { 12 return 0; 13 } 14 } 15 16 int test3(int x, int y) { 17 int v = x && y; 18 return v; 19 } 20 21 int test4(int x, int y) { 22 if(x & y) { 23 return 1; 24 } else { 25 return 0; 26 } 27 } 28 29 int main(int index) 30 { 31 int x,y; 32 printf("testing...\n"); 33 int totalBad = 0; 34 for(y = 0; y < 2; y++) { 35 for(x = 0; x < 2; x++) { 36 int a = test(x,y); 37 int b = test2(x,y); 38 if (a != b) { 39 printf("Results differ: OR x=%d y=%d a=%d b=%d\n", x, y, a, b); 40 totalBad++; 41 } 42 a = test3(x,y); 43 b = test4(x,y); 44 if (a != b) { 45 printf("Results differ: AND x=%d y=%d a=%d b=%d\n", x, y, a, b); 46 totalBad++; 47 } 48 } 49 } 50 printf("Total bad: %d\n", totalBad); 51 return 0; 52 } 53 54