Advertisement
quickben

Bit Exchange

Mar 23rd, 2014
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.25 KB | None | 0 0
  1.             Console.WriteLine("Please enter unsigned integer number");
  2.             uint number = Convert.ToUInt32(Console.ReadLine());
  3.             Console.WriteLine("Please enter the first bit's position");
  4.             int firstPosition = Convert.ToInt32(Console.ReadLine());
  5.             Console.WriteLine("Please enter the second bit's position");
  6.             int secondPosition = Convert.ToInt32(Console.ReadLine());
  7.             Console.WriteLine("Please enter the number of consecutive bits you want to exchange");
  8.             int numberOfBits = Convert.ToInt32(Console.ReadLine());
  9.             uint result;
  10.             uint temp;
  11.             temp = ((number >> firstPosition) ^ (number >> secondPosition)) & ((1U << numberOfBits) - 1); // XOR temporary
  12.             result = number ^ ((temp << firstPosition) | (temp << secondPosition));
  13.  
  14.             if ((firstPosition + numberOfBits) > 32 || (secondPosition + numberOfBits) > 32)
  15.             {
  16.                 Console.WriteLine("Out of range");
  17.             }    
  18.             else if ((firstPosition + secondPosition) <= numberOfBits)
  19.             {
  20.                 Console.WriteLine("Overlapping");
  21.             }
  22.             else
  23.             {
  24.                 Console.WriteLine(result);  
  25.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement