>>>
è l'operatore di spostamento a destra bit a bit senza segno. 0x0F
è un numero esadecimale che equivale a 15 in decimale. Rappresenta i quattro bit inferiori e traduce il modello di bit 0000 1111
. &
è un'operazione bit a bit AND
.
(x >>> 4) & 0x0F
fornisce il bocconcino superiore di un byte. Quindi, se avete 6A
, che, fondamentalmente, finisce con 06
:
6A = ((0110 1010 >>> 4) & 0x0F) = (0000 0110 & 0x0F) = (0000 0110 & 0000 1111) = 0000 0110 = 06
x & 0x0F
ti dà la nibble inferiore del byte. Quindi se hai 6A
, finisci con 0A
.
6A = (0110 1010 & 0x0F) = (0110 1010 & 0000 1111) = 0000 1010 = 0A
Da quello che posso dire, sembra che si sommando i valori dei singoli stuzzichini di tutti i caratteri di una stringa, forse per creare un checksum di qualche tipo.
fonte
2012-10-20 15:40:23
'0x0f' è una rappresentazione esadecimale di un byte. Nello specifico, il pattern di bit '00001111' – Basic
Ok, e come funziona quell'espressione? in che modo '(x >>> 4) & 0x0F' restituisce il valore intero, in quanto la funzione chatAt() richiede l'immissione di numeri interi – Prakash