Avatar
adder
Člen
Avatar
adder:

ahoj, nedokážu si vysvětlit. jaktože to vyhodí 2? děkuji za odpověd.

class BitDemo {
     public static void main(String[] args) {
          int bitovaMaska = 0x000F;
          int hodnota = 0x2222;
          System.out.println(hodnota & bitovaMaska);  // vytiskne "2"
     }
}
Odpovědět 30.3.2014 9:27
I’m going to lay this brick as perfectly as a brick can be laid.
Avatar
arahusky
Člen
Avatar
arahusky:

Ahoj :), tak jak se na to divam, tak mne to pripada jasne:
v 16-tkove soustave je 0x00F cislo 00...0001111 a cislo 0x2222 neco co konci 100010, tudiz kdyz delas bitovy AND, tak ti vznikne 000.00010 coz je ale 2 :)

 
Nahoru Odpovědět  +2 30.3.2014 9:35
Avatar
xxxvodnikxxx
Člen
Avatar
xxxvodnikxxx:

protože sice zapisuješ do intů hexa, ale potom to vypisuješ jako int, kdyby se udělalo něco ve smyslu Integer.toHex­String(myInt)
System.out.prin­tln(Integer.to­HexString(hod­nota & bitovaMaska));

Mělo by to vypsat HEXa tvaru, co jsi asi předpokládal :)

Nebo napsal jsem to blbě, vypisuješ jako string, ale jde o to, že int*int == int, nebo int & int == int

Editováno 30.3.2014 10:55
Nahoru Odpovědět 30.3.2014 10:54
Unix- svět, kde chcete být nulou :) (UID)
Avatar
Artas
Redaktor
Avatar
Odpovídá na adder
Artas:

0x000F = 0000000000001111b
0x2222 = 0010001000100010b


& 0000000000000010b == 2d

Editováno 30.3.2014 12:12
 
Nahoru Odpovědět 30.3.2014 12:11
Avatar
Odpovídá na adder
Libor Šimo (libcosenior):

& je bitový súčin
x & y
i-ty bit bitového súčinu bude 1 ak i-ty bit x aj i-ty bit y bude 1, v opačnom prípade bude i-ty bit 0

Nahoru Odpovědět 30.3.2014 16:11
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
adder
Člen
Avatar
adder:

Děkuji moc všem. Ještě bych se chtěl zeptat nebo ujistit:

int hodnota = 0x2222;

to 0x udává, že posloupnost zatím, bude v 16-vé soustavě? jinak přeji hezký den a ještě 1 děkuji :)

Nahoru Odpovědět 30.3.2014 18:13
I’m going to lay this brick as perfectly as a brick can be laid.
Avatar
Artas
Redaktor
Avatar
Odpovídá na adder
Artas:

Ano, prefix 0x je pro šestnáckovou soustavu, 0 pak pro osmičkovou.

 
Nahoru Odpovědět  +1 30.3.2014 18:45
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.