Angella Andrea - Italian Blog

Infinita passione per lo sviluppo software !
posts - 133, comments - 216, trackbacks - 9

My Links

News

MIT OpenCourseWare: I'm invested Wikipedia Affiliate Button


Sto leggendo:

Archives

Post Categories

Siti web realizzati

Siti web tecnici

[70-536] - BitVector32 structure


Area di riferimento

- Developing applications that use system types and collections
    - Manage data in a .NET Framework application by using specialized collections. (Refer System.Collections.Specialized namespace)
        - BitVector32 structure and BitVector32.Section structure


BitVector32 structure

La struttura BitVector32 permette di gestire a livello di bit un numero a 32 bit. Ecco un esempio di utilizzo:

BitVector32 bit = new BitVector32(12);    // creo un vettore di bit il cui contenuto iniziale è il numero 12

Console.WriteLine(bit.ToString());        // Output: BitVector32{00000000000000000000000000001100}

// Costruzione delle maschere necessarie all'accesso agli elementi del vettore di bit
int primoBit = BitVector32.CreateMask();
int secondoBit = BitVector32.CreateMask(primoBit);
int terzoBit = BitVector32.CreateMask(secondoBit);
int quartoBit = BitVector32.CreateMask(terzoBit);

// imposto a 1 il bit meno significativo del vettore di bit
bit[primoBit] = true; 

Console.WriteLine( bit.Data );     // Output: 13


La struttura BitVector32 supporta anche il raggruppamento di bit. Questa operazione permette di manipolare tanti piccoli numeri che nel loro insieme costituiscono un numero più grande a 32 bit. Il vantaggio di un tale approccio è un risparmio di memoria nel caso sia necessario operare con tanti numeri il cui valore massimo è abbastanza piccolo. Per prima cosa è opportuno definire quelle che sono le sezioni Section che rappresentano i vari numeri specificando il numero più grande che ciascuna sezione deve essere in grado di memorizzare.

Vediamo un esempio in cui vogliamo utilizzare la struttura BitVector32 per memorizzare tre numeri i cui valori massimi sono rispettivamente 10, 100 e 1000:

BitVector32 gruppo = new BitVector32(0);

// Definisco le sezioni desiderate
BitVector32.Section primaSezione = BitVector32.CreateSection(10);
BitVector32.Section secondaSezione = BitVector32.CreateSection(100, primaSezione);
BitVector32.Section terzaSezione = BitVector32.CreateSection(1000, secondaSezione);

// Assegno un numero alle varie sezioni
gruppo[primaSezione] = 7;
gruppo[secondaSezione] = 49;
gruppo[terzaSezione] = 540;

// Recupero i numeri memorizzati
int primoNumero = gruppo[primaSezione];
int secondoNumero = gruppo[secondaSezione];
int terzoNumero = gruppo[terzaSezione];

Console.WriteLine("{0},{1},{2}", primoNumero, secondoNumero, terzoNumero);    // Output: 7,49,540

Print | posted on domenica 18 novembre 2007 01:07 | Filed Under [ Exam 70-536 Application Development Foundation ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET