fbinnzhivko

05.00 Bit Sequence Exchange

May 16th, 2016
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.38 KB | None | 0 0
  1. using System;
  2. public class BitSequenceExchange
  3. {
  4.     static void Main()
  5.     {
  6.         long number = long.Parse(Console.ReadLine());
  7.  
  8.         long bit3 = findBitAtPosition(number, 3);
  9.         long bit4 = findBitAtPosition(number, 4);
  10.         long bit5 = findBitAtPosition(number, 5);
  11.         long bit24 = findBitAtPosition(number, 24);
  12.         long bit25 = findBitAtPosition(number, 25);
  13.         long bit26 = findBitAtPosition(number, 26);
  14.  
  15.         number = swapPositions(number, bit24, 3);
  16.         number = swapPositions(number, bit25, 4);
  17.         number = swapPositions(number, bit26, 5);
  18.  
  19.         number = swapPositions(number, bit3, 24);
  20.         number = swapPositions(number, bit4, 25);
  21.         number = swapPositions(number, bit5, 26);
  22.  
  23.         Console.WriteLine(number);
  24.     }
  25.  
  26.     public static long findBitAtPosition(long number, int bitPosition)
  27.     {
  28.         long mask = 1 << bitPosition;
  29.         long numAndMask = number & mask;
  30.         long bit = numAndMask >> bitPosition;
  31.         return bit;
  32.     }
  33.  
  34.     public static long swapPositions(long number, long bit, int newPosition)
  35.     {
  36.         if (bit == 1)
  37.         {
  38.             long mask = bit << newPosition;
  39.             number = number | mask;
  40.         }
  41.         else
  42.         {
  43.             long mask = ~(1 << newPosition);
  44.             number = number & mask;
  45.         }
  46.         return number;
  47.     }
  48. }
Add Comment
Please, Sign In to add comment