1. Find bitwise or of X and Y, then result will have set bits where either X or Y have set bits. Eg: X = 3(011), Y=5(101) their or will be 7(111).
2. Now we find places where both X and Y have set bits. The value of expression "~X | ~Y" has 0 bits wherever X and Y both have set bits.
3. Bitwise and of "X|Y" and "~X | ~Y" produces the required result.
2. Now we find places where both X and Y have set bits. The value of expression "~X | ~Y" has 0 bits wherever X and Y both have set bits.
3. Bitwise and of "X|Y" and "~X | ~Y" produces the required result.
#include <stdio.h> int findXOR(int x, int y) { return (x | y) & (~x | ~y); } int main() { int x,y; printf("Enter x and y: "); scanf("%d %d",&x,&y); printf("XOR is findXOR(x,y)"); return 0; }
No comments:
Post a Comment