Salve, qualcuno molto gentilmente può spiegarmi i campi bit nelle strutture in C? Grazie
Salve, qualcuno molto gentilmente può spiegarmi i campi bit nelle strutture in C? Grazie
C'è qualcuno che mi può rispondere? grazi
up
JFGI: Just F*** Google It.
"Let him who has understanding reckon the number of the beast, for it is a human number.
Its number is rw-rw-rw-."
non ho trovato niente su google!
Dalla prima pagina della ricerca di google "c bit field":
http://www.science.unitn.it/~fiorell...guidac072.html
http://www.cs.cf.ac.uk/Dave/C/node13.html
http://forum.html.it/forum/showthread/t-1179017.html <-- questa è di questo forum
http://msdn.microsoft.com/en-us/library/yszfawxh(VS.80).aspx
http://publib.boulder.ibm.com/infoce...c03defbitf.htm
http://cplus.about.com/od/learningc/ss/lowlevel_10.htm
http://www.java-samples.com/showtuto...tutorialid=560
"Let him who has understanding reckon the number of the beast, for it is a human number.
Its number is rw-rw-rw-."
Leggendo tutti questi tutorial sulla rete ho notato che vengono usati tutti tipi unsigned. Perchè??? inoltre che differenza c'è tra un unsigned char e un char??? Ultima domanda: se io scrivessi un codice.del genere:
x adesso conterrà 10 perchè (1 & 1 = 1 e poi 0 & 1 = 0) oppure conterrà solo il valore 0 (0 & 1 = 0) quindi insomma eseguirà l'& solo con il bit più a destra o lo eseguirà su tutto il numero?codice:.... int x = 2; x &= 1; ....
I bit fields sono dei valori utilizzati per specificare quanti valori può assumere uno o più campi di una struttura. Il tipo unsigned è utilizzato per assicurarsi che non venga riservato nessun bit per il segno del valore utilizzato coome campo bit. La differenza tra charè unsigned char sta nel fatto che il char di suo è signed mentre l'unsigned char è unsigned. Nell'esempio da te riportato x non varra 10 bensì 0 perchè nell'operazione di assegnazione i bit del valore 10 non sono adiacenti a nessun bit del valore 1 quindi il valore finale non può essere che 0.
Ti consiglio di visitare questi link nel caso avessi dei dubbi riguardo alla mia spiegazione:
I bit field in generale :
- http://publications.gbdirect.co.uk/c...bitfields.html
- http://www.science.unitn.it/~fiorell...guidac072.html
- http://en.wikipedia.org/wiki/Bit_field
I tipi signed e unsigned char:
- http://www.matematicamente.it/forum/...ed-t56413.html
L'operatore '&':
- http://digilander.libero.it/uzappi/C/C-operatori.html
- http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B
- http://web.cs.mun.ca/~michael/c/op.html