Advertisement
Guest User

Untitled

a guest
Oct 9th, 2012
565
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.15 KB | None | 0 0
  1. using System;
  2.  
  3. class BitSwitchCustomize
  4. {
  5.     static void Main()
  6.     {
  7.         Console.Write("Please enter any number of type \"uint\" to exchange bits {p,p+1,...,p+k-1}\n(counting of bits starting from 0) with bits {q,q+1,...,q+k-1}\nrespectively: ");
  8.         uint input = uint.Parse(Console.ReadLine());
  9.         Console.Write("p= ");
  10.         byte pos1 = byte.Parse(Console.ReadLine());
  11.         Console.Write("q= ");
  12.         byte pos2 = byte.Parse(Console.ReadLine());
  13.         Console.Write("k= ");
  14.         byte len = byte.Parse(Console.ReadLine());
  15.         uint numberToAdd1 = ((input << (32 - pos2 -len)) >> (32 - len)) << pos1;
  16.         uint numbertoAdd2 = ((input >> pos1) << (32 - len)) >> (32 - pos2 - len);
  17.         uint numberToAdd = numberToAdd1 + numbertoAdd2;
  18.         uint numberToSubtract1 = numberToAdd1 << (pos2 - pos1);
  19.         uint numberToSubtract2 = numbertoAdd2 >> (pos2 - pos1);
  20.         uint numberToSubtract = numberToSubtract1 + numberToSubtract2;
  21.         uint output = (input - numberToSubtract) + numberToAdd;
  22.         Console.WriteLine();
  23.         Console.WriteLine("Result: " + output);
  24.         Console.WriteLine();
  25.     }
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement