|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2006
Città: M.O.F.N. (Middle of Fuckin Nowhere)
Messaggi: 309
|
[C++] Operare sui bit
ciao,
se ho un byte con 00100000 e voglio cambiare ragionare solo sul sesto bit da destra (l'1) come posso fare. nella mia idea ogni bit ha un suo significato, e perciò non voglio ragionare su tutto il byte ma solo su un bit. con quali funzioni posso prelevare un bit e modificarlo?
__________________
The Pepppppppppppppppppppppppppppp "Sono figlio della libertà, ad essa devo tutto quello che sono" |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2007
Città: Milano Beach
Messaggi: 1696
|
Usa le maschere di bit e i bitwise operator.
Se vuoi impostare a 1 il sesto bit basta che fai.. Codice:
tuoByte = tuoByte | 00100000; Codice:
tuoByte = tuoByte & 11011111; Altrimenti, potresti usare il container STL bitset.
__________________
~ Cthulhu: MacBookPro 13.3" ~ Azathoth: D510MO Ultima modifica di GByTe87 : 30-05-2011 alle 15:25. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
per creare una mask 0 .. 0 1 0 0 0 0 0 (solo un uno al sesto bit) così:
Codice:
unsigned int mask = 1 << 5; // errata corrige Codice:
if (mask & x)
{
// il sesto bit in x è 1
}
else
{
// è zero
}
Codice:
x = x ^ mask Ultima modifica di tuccio` : 30-05-2011 alle 16:21. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quello e' il settimo bit
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
#5 | |
|
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21857
|
Quote:
se vuoi forzarlo a 1 fai una or variabile |=0x20; se vuoi forzarlo a zero variabile&=0xDF; per il confronto prima mascheri e poi confronti if (( variabile& 0x20)== 0x20) { //bit6=1 }
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Codice:
struct MyStruct
{
int b0: 1;
int b1: 1;
int b2: 1;
int b3: 1;
int b4: 1;
int b5: 1;
int b6: 1;
int b7: 1;
}
__________________
In God we trust; all others bring data |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:35.




















