PDA

View Full Version : [java] operatori


nuovoUtente86
02-07-2007, 20:52
>> e << che cosa indicano in java?

eccoli in una parte dell' algorito RadixSort

j = ((255<<(k<<3))&arr[i])>>(k<<3);

andbin
02-07-2007, 21:19
>> e << che cosa indicano in java?Sono gli operatori di shift binario. Ce ne sono 3: << (shift a sinistra), >> (shift a destra con segno), >>> (shift a destra senza segno).

nuovoUtente86
02-07-2007, 22:03
un' esempiio pratico di ciò che fanno?

andbin
03-07-2007, 08:17
un' esempiio pratico di ciò che fanno?Spostano i bit a sinistra o a destra di n posizioni, che equivale a fare una moltiplicazione/divisione per 2^n.

int a = 10; // in binario 0.....0001010

a = a << 2;

// a vale 40 // in binario 0.....0101000

nuovoUtente86
03-07-2007, 14:11
che utilità puo avere tale utilizzo nel radixsort dove si ordinano le cifre da destra a sinistra?

PGI-Bis
03-07-2007, 15:46
Considerare un numero nella sua forma binaria permette di avere a che fare con un identico numero di cifre.

Ad esempio 10 e 100 hanno due e tre cifre ma la versione decimale a 32 bit a 32 cifre binarie.

Nell'ordinamento per radice la cosa è utile perchè questo tipo di algoritmo confronta le cifre di due numeri che si trovano nella stessa posizione (o i valori corrispondenti per posizione nel caso in cui non si tratti di numeri).

Se un numero ha 4 cifre e l'altro ne ha 5, la versione decimale richiede che al primo numero sia aggiunto uno zero iniziale.

Ps.: il bit-radixsort l'ho letto stamattina sul Drozdek se no col cavolo che lo sapevo :D