Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Operare con i bit

Precedente
SUPERIORE
Successiva

Le variabili intere possono essere utilizzate come contenitori di bit (fino a 64...). Diventano essenziali dei metodi per la manipolazione dei bit e le maschere di bit.

Il bit p-esimo è acceso?

L'operatore &, AND bit a bit, spegne tutti i bit accoppiati con 0 e lascia inalterato il bit accoppiato con 1

.........x...... &
0.......010....0 =
------------------
0.......0x0....0

Codifica

public static boolean scopri(long n, int p)
{
   long mask = (0x1L << p);  // il bit LSD diventa p-esimo
   n &= mask;
   return (n != 0);
}

Se il bit p-esimo diventa LSD allora la maschera necessaria è

0.............01

Codifica

public static long scopri(long n, int p)
{
   n >>>= p;   // il bit p-esimo di n diventa LSD
   n &= 0x1L;
   return n;
}

Accendere il bit p-esimo

L'operatore |, OR bit a bit, accende il bit accoppiato con 1 e lascia inalterati quelli accoppiati con 0

.........x...... |
0.......010....0 =
------------------
.........1......

Codifica

public static long accendi(long n, int p)
{
   long mask = (0x1L << p);  // il bit LSD diventa p-esimo
   n |= mask;
   return n;
}

Spegnere il bit p-esimo

L'operatore &, AND bit a bit, lascia inalterati i bit accoppiati con 1 e spegne il bit p-esimo accoppiato con 0

.........x...... &
1.......101....1 =
------------------
.........0......

Codifica

public static long spegni(long n, int p)
{
   long mask = (0x1L << p);  // il bit LSD diventa p-esimo
   mask = ~mask;             // tutti 1 tranne uno 0
   n &= mask;
   return n;
}

Operare con i bit - ApPuNtIdIuNiNfOrMaTiCo

Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Precedente
SUPERIORE
Successiva