Advertisement
soxa

ExchangesBits

Nov 7th, 2013
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.92 KB | None | 0 0
  1. using System;
  2. // Write a program that exchanges bits 3, 4 and 5 with bits 24, 25 and 26 of given 32-bit unsigned integer.
  3.  
  4. class ExchangesBits
  5. {
  6.     static void Main()
  7.     {
  8.         int firstBits = 56;          // firstBits = 00000000000000000000000000111000
  9.         int secondBits = 117440512; // secondBits = 00000111000000000000000000000000
  10.         int num = int.Parse(Console.ReadLine()); // 83886096; 83886128; 16777272; 56; 78
  11.         int mask1 = 0, mask2 = 0;
  12.         int numConverter = 0;
  13.  
  14.         Console.WriteLine(Convert.ToString(num, 2).PadLeft(32, '0'));
  15.  
  16.         mask1 = num & firstBits;
  17.         numConverter |= firstBits;
  18.         mask2 = num & secondBits;
  19.         numConverter |= secondBits;
  20.         num &= (~numConverter);
  21.  
  22.         mask1 <<= 21;
  23.         mask2 >>= 21;
  24.  
  25.         mask1 |= mask2;
  26.         num = num | mask1;
  27.  
  28.         Console.WriteLine(Convert.ToString(num, 2).PadLeft(32, '0'));
  29.     }
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement