[ miljannet @ 08.09.2015. 00:58 ] @
| Imam jedan mali problem, ovaj sasvim obican kod mi nema logike i ne dobijam izlaz koji sam ocekivao da cu dobiti.
byte b = -0b0101^-0b0100;
System.out.println("Outputs "+b); // Output je 7
Izlaz je 0b0111, a treba da bude 0b0001.
More li mi neko pomici ? |
[ hyle @ 08.09.2015. 07:42 ] @
Za predstavljanje negativnih brojeva u binarnom sistemu se koristi komplement dvojke, potraži po netu objašnjenje za Two's complement
U tvom slučaju, izraz je: byte b = -5 ^ -4;
-5 binarno je 11111011
-4 binarno je 11111100
[ Texas Instruments @ 08.09.2015. 09:20 ] @
U Javi su svi tipovi označeni (signed) i najviši bitovi su dopunjeni znakom, što kod negativnih brojeva znači da su to jedinice na početku, kao što je hyle napisao u ovom primeru.
[ miljannet @ 08.09.2015. 12:17 ] @
Razumeo sam sada. Hvala vam mnogoo !
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.