Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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?  

PM
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
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


Il mio blog: https://piero.dev
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...

PM
Avatar
Bonny (Member)
Expert


Messaggi: 437
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:

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:

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
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 ^ >> <<

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

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

PM
Pagine: [ 1 2 ] Precedente | Prossimo