Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class HelloWorld{
- public static void main(String []args){
- // 1. Wartosc reprezentowqna przez ostatnie 5 bitow
- int n = 4; // wybralem a dupy
- //Integer.parseInt(System.console().readLine());
- System.out.println("Number = " + n);
- // maska do nakladania na liczbe zeby dostac te ostatnie 5
- // 32 bity ma int ,... wiec 27zer i 5 jedynek
- int mask = 0B00000000000000000000000000011111;
- // oczywiscie duzo latwiuej jest zobaczyc, ze to 31 ;)
- // bo to 2^5 - 1 ... skoro same jedynki ;)
- // wiec mozna wtedy napisac tak i bedzie dzialalo:
- // int mask = 31;
- System.out.println("Mask for last 5 bits = " + mask);
- // Teraz musimy nalozyc te maske na liczbe
- // operator bitowe AND
- int result = n & mask;
- // no i wyswietlamy
- System.out.println("result = " + result);
- // sprawdzmy dla jakiejs duzej losowej liczby:
- int test_n = 162393;
- System.out.println("Test Number = " + test_n);
- // w zapisie binarnym ta liczba to:
- // 100111101001011001
- // ostatnie 5 bitow: 11001
- // w dzisietnym te 5 bitow to: 25
- int test_result = test_n & mask;
- // no i wyswietlamy
- System.out.println("test_result should be 25, is = " + test_result);
- // 2. 1 lub 0 w zaleznosci od 7 bitu tej zmiennej
- // tutah jak widac potrzebujemy maski z samymi zerami
- // ale z 1 na siodmym miejscu (patrzac z prawej strony)
- int mask_7 = 0B00000000000000000000000001000000;
- // oczywiscie mozna napisac tak, ze to 2^6:
- // int mask_7 = 64
- System.out.println("Mask for 7th bit = " + mask_7);
- // nakladamy maske i...
- // operatora przesuniecia bitowego
- // jest to wtedy bardziej spojne zadanie
- int result_7th_bit = ( n & mask_7 ) >> 6;
- System.out.println("Value of 7th bit = " + result_7th_bit);
- // oczywiscie da sie to zrobic jeszcze bardziej cwanie
- // najpierw przesunac o te 6 ... i pozniej nalozyc operator & z 1 :)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement