fork(2) download
  1. #include <iostream>
  2. #include <bitset>
  3. using namespace std;
  4.  
  5. // Function to swap bits are position p and q in integer n
  6. int swap(int n, int p, int q)
  7. {
  8. // p = 8 - p;
  9. // q = 8 - q;
  10.  
  11. // if bits are different at position p and q
  12. if (((n & (1 << p)) >> p) ^ ((n & (1 << q)) >> q))
  13. {
  14. n ^= (1 << p);
  15. n ^= (1 << q);
  16. }
  17. return n;
  18. }
  19.  
  20. int main()
  21. {
  22. int n = 31;
  23. int p = 2, q = 4;
  24.  
  25. cout << n << " in binary is " << bitset<8>(n) << endl;
  26. n = swap (n, p, q);
  27. cout << n << " in binary is " << bitset<8>(n) << endl;
  28.  
  29. return 0;
  30. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
31 in binary is 00011111
31 in binary is 00011111