staafl

bit swapping

May 24th, 2013
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. int number = 1 << 24 | 1 << 25 | 1 << 26; // int.Parse(Console.ReadLine());
  2. // for testing, use 1 << 24 | 1 << 25 | 1 << 26 ;
  3.  
  4. Console.WriteLine(Convert.ToString(number,2).PadLeft(32,'0'));
  5.  
  6. for(int ii = 0; ii < 3; ++ii)
  7. {
  8. int pos1 = ii + 3;
  9. int pos2 = ii + 24;
  10. bool bit1Set = (number & (1 << pos1)) != 0;
  11. bool bit2Set = (number & (1 << pos2)) != 0;
  12.  
  13. if(bit2Set)
  14. {
  15. number = number | (1 << pos1);
  16. }
  17. else
  18. {
  19. number = number & ~(1 << pos1);
  20. }
  21.  
  22. if(bit1Set)
  23. {
  24. number = number | (1 << pos2);
  25. }
  26. else
  27. {
  28. number = number & ~(1 << pos2);
  29. }
  30.  
  31. Console.WriteLine(Convert.ToString(number,2).PadLeft(32,'0'));
  32. }
Advertisement
Add Comment
Please, Sign In to add comment