Advertisement
AnitaN

03.OperatorsExpressionsStatements/16.BitExchangeAdvanced

Mar 20th, 2014
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.69 KB | None | 0 0
  1. //Problem 16.   ** Bit Exchange (Advanced)
  2. //Write a program that exchanges bits {p, p+1, …, p+k-1} with bits {q, q+1, …, q+k-1} of a given 32-bit unsigned integer.
  3. //The first and the second sequence of bits may not overlap.
  4.  
  5. using System;
  6.  
  7. class BitExchangeAdvanced
  8. {
  9.     static void Main()
  10.     {
  11.         Console.Write("Please,enter number:");
  12.         uint number = uint.Parse(Console.ReadLine());
  13.         Console.Write("Please, enter p:");
  14.         int p = int.Parse(Console.ReadLine());
  15.         Console.Write("Please, enter q:");
  16.         int q = int.Parse(Console.ReadLine());
  17.         Console.Write("Please, enter k:");
  18.         int k = int.Parse(Console.ReadLine());
  19.         Console.WriteLine(Convert.ToString(number, 2).PadLeft(32, '0'));
  20.         // Turning the number in bin system
  21.         uint[] numInBin = new uint[32];
  22.         for (int i = 0; i < numInBin.Length; i++)
  23.         {
  24.             if (number == 0)
  25.             {
  26.                 break;
  27.             }
  28.             numInBin[i] = number % 2;
  29.             number = number / 2;
  30.         }
  31.         // Printing the list
  32.         for (int i = 0; i < numInBin.Length; i++)
  33.         {
  34.             Console.Write(numInBin[i]);
  35.         }
  36.         Console.WriteLine();
  37.         //Making the changes
  38.         for (int i = 0; i < k; i++)
  39.         {
  40.             uint temp = 0;
  41.             temp = numInBin[p];
  42.             numInBin[p] = numInBin[q];
  43.             numInBin[q] = temp;
  44.             p++;
  45.             q++;
  46.         }
  47.         // Print the edited list
  48.         Array.Reverse(numInBin);
  49.         for (int i = 0; i < numInBin.Length; i++)
  50.         {
  51.             Console.Write(numInBin[i]);
  52.         }
  53.         Console.WriteLine();
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement