fork download
  1. #include <stdio.h>
  2.  
  3. int swapbits(int x, int p1, int p2, int n)
  4. {
  5. unsigned int set1 = (x >> p1) & ((1<<n) -1) ;
  6.  
  7. printf("\nset1 = %d",set1);
  8. unsigned int set2 = (x >> p2) & ((1<<n) - 1);
  9. printf("\nset2 = %d",set2);
  10.  
  11. unsigned int xor = set1 ^ set2;
  12. printf("\nxor = %d",xor);
  13. xor = (xor << p1) | (xor << p2);
  14. printf("\nxor = %d",xor);
  15.  
  16. unsigned int result = result ^ xor;
  17. printf("\nresult = %d",result);
  18.  
  19. return result;
  20.  
  21. }
  22.  
  23. int main(void) {
  24. swapbits(28,0,3,2);
  25. // your code goes here
  26. return 0;
  27. }
  28.  
Success #stdin #stdout 0s 10320KB
stdin
Standard input is empty
stdout
set1 = 0
set2 = 3
xor = 3
xor = 27
result = 27