Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - bitwise
Forum - C/C++ - bitwise

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Segnala al moderatore
Postato alle 13:58
Giovedì, 02/09/2010
Sto studiando da poi gli operatori bitwise ma se devo dirla tutta non li trovo molto utili. A cosa servono?  


Yep, I came back :P
PM
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6110
Iscritto: 04/12/2003

Up
1
Down
V
Segnala al moderatore
Postato alle 16:47
Giovedì, 02/09/2010
TheKaneB ha scritto un buon articolo che dovrebbe rispondere alla tua domanda: http://www.oscene.net/it/programmazione/c/capire-e-sfrutta ...

Il perchè usare operazioni bitwise invece di usare altri metodi è un fatto puramente di performance; molto spesso utilizzare le operazioni bitwise sono più veloci delle loro equivalenti non-bitwise.

Ultima modifica effettuata da pierotofy il 02/09/2010 alle 16:49


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM
Avatar
nihal (Ex-Member)
Pro


Messaggi: 109
Iscritto: 12/04/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 15:57
Giovedì, 02/09/2010
Beh, un esempio potrebbe essere la cifratura XOR, che viene fatta "xorando" bitwise tutti i bit del dato da codificare con la chiave scelta, oppure quando si usano le mask in OpenGL... Le applicazioni sono virtualmente infinite...


Chi lotta può perdere. Chi non lotta ha già perso...
PM
Avatar
Bonny (Member)
Expert


Messaggi: 435
Iscritto: 24/04/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 19:24
Giovedì, 02/09/2010
Testo quotato

Postato originariamente da pierotofy:

TheKaneB ha scritto un buon articolo che dovrebbe rispondere alla tua domanda: http://www.oscene.net/it/programmazione/c/capire-e-sfrutta ...



Ottimo articolo :k:


Bonny
PM
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 16:26
Sabato, 04/09/2010
Studiando questi operatori sul libro e su alcune guide sul web sono arrivato ad una conclusione. Corregetemi se sbaglio:
~ = converte tutti gli 0 in 1 e tutti 1 in 0
<< = aggiunge n 0 da destra
>> = aggiunge n 0 da sinistra
purtroppo non ho capito quest'ultimi: | & ^ me li spiegate. Grazie :k:


Yep, I came back :P
PM
Avatar
nihal (Ex-Member)
Pro


Messaggi: 109
Iscritto: 12/04/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 18:18
Sabato, 04/09/2010
Gli operatori | ^ & corrispondono rispettivamente agli OR, XOR e AND della logica. In particolare:
-OR restituisce 1 se almeno uno degli operandi è 1, altrimenti 0;
-XOR restituisce 1 se solo uno degli operandi è 1 (scusa il gioco di parole :) ), altrimenti 0;
-AND restituisce 1 solo se entrambi gli operandi sono 1, altrimenti 0;
In ambito bitwise, gli operandi sono i singoli bit... Se hai domande posta, spero di essere stato chiaro :)

Ultima modifica effettuata da nihal il 04/09/2010 alle 18:19


Chi lotta può perdere. Chi non lotta ha già perso...
PM
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 18:36
Sabato, 04/09/2010
il concetto sta diventando sempre più chiaro. potresti concludere facendo degli esempi? le cose che ho detto prima riguardo a ^ >> <<


Yep, I came back :P
PM
Avatar
nihal (Ex-Member)
Pro


Messaggi: 109
Iscritto: 12/04/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 14:58
Domenica, 05/09/2010
Guarda, esempi sugli shift e sull'AND li trovi sull'articolo di TheKaneB che ti è stato segnalato qualche reply fa, mentre sul not non penso ci vogliano spiegazioni, no?
Invece per XOR (non uso tutti i 32 bit, ma i semplici numeri in binario):
101000 XOR
001011    =
___________
100011


Chi lotta può perdere. Chi non lotta ha già perso...
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
0
Down
V
Segnala al moderatore
Postato alle 10:43
Lunedì, 06/09/2010
Testo quotato

Postato originariamente da Pitagora:

Studiando questi operatori sul libro e su alcune guide sul web sono arrivato ad una conclusione. Corregetemi se sbaglio:
~ = converte tutti gli 0 in 1 e tutti 1 in 0
<< = aggiunge n 0 da destra
>> = aggiunge n 0 da sinistra
purtroppo non ho capito quest'ultimi: | & ^ me li spiegate. Grazie :k:



>> e << sono operatori di shift. Non aggiungono semplicemente 0 a destra o a sinistra, ma "spostano" letteralmente tutti i bit verso destra o verso sinistra. Se un bit va fuori dalla finestra della rappresentazione, viene perso. Spostando il tutto in un verso, gli spazi rimanenti all'estremo opposto vengono riempiti con degli 0.
100100 >> 3 = 000100
110101 << 2 = 010100


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM
Pagine: [ 1 2 ] Precedente | Prossimo