Shift a sinistra

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
bismark2005
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1123
Iscrizione: lunedì 2 gennaio 2006, 16:27

Shift a sinistra

Messaggio da bismark2005 »

Salve a tutti.

Scrivo per chiedere qualche delucidazione sullo shift a sinistra in Java.

La rappresentazione binaria di 2 è 0010. Ora se scrivo 2<<2 dovrei ottenere 0100 cioè 8.

Ma non mi trovo. Qual è il meccanismo esatto di scorrimento a sinistra?
Dahman
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1013
Iscrizione: mercoledì 31 ottobre 2007, 8:29
Località: Torino

Re: Shift a sinistra

Messaggio da Dahman »

Il 2, ovviamente, non esiste nei numeri binari.

8 = 1<<2
shifta di 2 posizioni l'uno.

edit: evidentemente nessuno se ne accorto:
      8 = 1<<3
 
ciao
dahman
Ultima modifica di Dahman il giovedì 15 gennaio 2009, 17:31, modificato 1 volta in totale.
Avatar utente
utey
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 435
Iscrizione: martedì 22 agosto 2006, 14:32
Località: Pavia

Re: Shift a sinistra

Messaggio da utey »

bismark2005 ha scritto: Ma non mi trovo. Qual è il meccanismo esatto di scorrimento a sinistra?
In che senso non ti trovi? Ottieni un risultato errato?
Avatar utente
bismark2005
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1123
Iscrizione: lunedì 2 gennaio 2006, 16:27

Re: Shift a sinistra

Messaggio da bismark2005 »

Credo di aver capito.

Ma AND, OR XOR servono a trasformare i bit in altri in base a determinati valori di conversione.

Ma allora il NOT logico, AND logico, OR logico cosa fanno?

Qual è la differenza tra i due?
Dahman
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1013
Iscrizione: mercoledì 31 ottobre 2007, 8:29
Località: Torino

Re: Shift a sinistra

Messaggio da Dahman »

Il AND logico per esempio, confronta 2 condizioni che possono essere true o false.
Se entrambi sono true allora il risultato é true altrimenti false.

Il AND (bitwise) confronta due numeri, bit per bit. Se i 2 bit valgono 1 allora il risultato é 1 altrimenti 0.
Esempio
A =%1000
B = %0111
C = %1101
A AND B = %0000
A AND C = %1000
B AND C = %0101

ciao
dahman
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti