// Test logical and bitwise AND and OR int test(int x, int y) { int v = x || y; return v; } int test2(int x, int y) { if(x | y) { return 1; } else { return 0; } } int test3(int x, int y) { int v = x && y; return v; } int test4(int x, int y) { if(x & y) { return 1; } else { return 0; } } int main(int index) { int x,y; printf("testing...\n"); int totalBad = 0; for(y = 0; y < 2; y++) { for(x = 0; x < 2; x++) { int a = test(x,y); int b = test2(x,y); if (a != b) { printf("Results differ: OR x=%d y=%d a=%d b=%d\n", x, y, a, b); totalBad++; } a = test3(x,y); b = test4(x,y); if (a != b) { printf("Results differ: AND x=%d y=%d a=%d b=%d\n", x, y, a, b); totalBad++; } } } printf("Total bad: %d\n", totalBad); return 0; }