Advertisement
dimipan80

Bits Exchange

Aug 5th, 2014
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.05 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. import java.util.Scanner;
  4.  
  5. public class _15_BitsExchange {
  6.  
  7.     public static void main(String[] args) {
  8.         // TODO Auto-generated method stub
  9.         Scanner scan = new Scanner(System.in);
  10.         System.out.print("Enter a non-negative whole Number in the range [0 .. 4 294 967 295]: ");
  11.         long number = scan.nextLong();
  12.         scan.close();
  13.  
  14.         if (number >= 0 && number <= 4_294_967_295L) {
  15.             int bitValue543 = (int) (number >>> 3) & 0b111;
  16.             int bitValue262524 = (int) (number >>> 24) & 0b111;
  17.  
  18.             long result = number;
  19.             if (bitValue543 != bitValue262524) {
  20.  
  21.                 int bitMask543 = bitValue543 << 3;
  22.                 result = number ^ bitMask543;
  23.                 int bitMask262524 = bitValue262524 << 24;
  24.                 result ^= bitMask262524;
  25.  
  26.                 result |= bitValue262524 << 3;
  27.                 result |= bitValue543 << 24;
  28.             }
  29.  
  30.             System.out.printf("The Number after Exchange of the Bits is: %d !\n", result);
  31.         } else {
  32.             System.out.println("Error! - Your number is Out of Range!!!");
  33.         }
  34.     }
  35.  
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement