Advertisement
Klaxon

[C# Operators] Bits Exchange

Jul 9th, 2013
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.56 KB | None | 0 0
  1. // Write a program that exchanges bits 3, 4 and 5 with bits 24, 25 and 26 of given 32-bit unsigned integer.
  2.  
  3. using System;
  4.  
  5. class ExchangeBits
  6. {
  7.     static void Main()
  8.     {
  9.         Console.Write("Enter unsigned integer: ");
  10.         int number = int.Parse(Console.ReadLine());
  11.  
  12.         int bitThree = (number & (1 << 3)) >> 3;
  13.         int bitFour = (number & (1 << 4)) >> 4;
  14.         int bitFive = (number & (1 << 5)) >> 5;
  15.         int bitTwentyFour = (number & (1 << 24)) >> 24;
  16.         int bitTwentyFive = (number & (1 << 25)) >> 25;
  17.         int bitTwentySix = (number & (1 << 26)) >> 26;
  18.  
  19.         int temp;
  20.         int result;
  21.  
  22.         temp = ((bitThree == 0) ? (temp = number & ~(1 << 24)) : (temp = number | (1 << 24)));
  23.         result = temp;
  24.         temp = ((bitFour == 0) ? (temp = result & ~(1 << 25)) : (temp = result | (1 << 25)));
  25.         result = temp;
  26.         temp = ((bitFive == 0) ? (temp = result & ~(1 << 26)) : (temp = result | (1 << 26)));
  27.         result = temp;
  28.         temp = ((bitTwentyFour == 0) ? (temp = result & ~(1 << 3)) : (temp = result | (1 << 3)));
  29.         result = temp;
  30.         temp = ((bitTwentyFive == 0) ? (temp = result & ~(1 << 4)) : (temp = result | (1 << 4)));
  31.         result = temp;
  32.         temp = ((bitTwentySix == 0) ? (temp = result & ~(1 << 5)) : (temp = result | (1 << 5)));
  33.         result = temp;
  34.  
  35.         Console.WriteLine("Old binary number:     {0}", Convert.ToString(number, 2).PadLeft(32, '0'));
  36.         Console.WriteLine("Modifed binary number: {0}", Convert.ToString(result, 2).PadLeft(32, '0'));
  37.     }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement