Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.13 KB | None | 0 0
  1. public class HelloWorld{
  2.  
  3.      public static void main(String []args){
  4.          
  5.         // 1. Wartosc reprezentowqna przez ostatnie 5 bitow
  6.         int n = 4; // wybralem a dupy
  7.         //Integer.parseInt(System.console().readLine());
  8.         System.out.println("Number = " + n);
  9.         // maska do nakladania na liczbe zeby dostac te ostatnie 5
  10.         // 32 bity ma int ,... wiec 27zer i 5 jedynek
  11.         int mask  = 0B00000000000000000000000000011111;
  12.         // oczywiscie duzo latwiuej jest zobaczyc, ze to 31 ;)
  13.         // bo to 2^5 - 1 ... skoro same jedynki ;)
  14.         // wiec mozna wtedy napisac tak i bedzie dzialalo:
  15.         // int mask = 31;
  16.         System.out.println("Mask for last 5 bits = " + mask);
  17.         // Teraz musimy nalozyc te maske na liczbe
  18.         // operator bitowe AND
  19.         int result = n & mask;
  20.         // no i wyswietlamy
  21.         System.out.println("result = " + result);
  22.         // sprawdzmy dla jakiejs duzej losowej liczby:
  23.        
  24.         int test_n = 162393;
  25.         System.out.println("Test Number = " + test_n);
  26.         // w zapisie binarnym ta liczba to:
  27.         // 100111101001011001
  28.         // ostatnie 5 bitow: 11001
  29.         // w dzisietnym te 5 bitow to: 25
  30.         int test_result = test_n & mask;
  31.         // no i wyswietlamy
  32.         System.out.println("test_result should be 25, is = " + test_result);
  33.        
  34.         // 2. 1 lub 0 w zaleznosci od 7 bitu tej zmiennej
  35.         // tutah jak widac potrzebujemy maski z samymi zerami
  36.         // ale z 1 na siodmym miejscu (patrzac z prawej strony)
  37.         int mask_7  = 0B00000000000000000000000001000000;
  38.         // oczywiscie mozna napisac tak, ze to 2^6:
  39.         // int mask_7 = 64
  40.         System.out.println("Mask for 7th bit = " + mask_7);
  41.         // nakladamy maske i...
  42.         // operatora przesuniecia bitowego
  43.         // jest to wtedy bardziej spojne zadanie
  44.         int result_7th_bit = ( n & mask_7 ) >> 6;
  45.         System.out.println("Value of 7th bit = " + result_7th_bit);
  46.         // oczywiscie da sie to zrobic jeszcze bardziej cwanie
  47.         // najpierw przesunac o te 6 ... i pozniej nalozyc operator & z 1 :)
  48.      }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement