PDA

View Full Version : [Java] Accesso e manipolazione bit contenuti in byte


xirc85
13-09-2007, 10:40
Ciao a tutti!
Ho un problema riguardante l'accesso e la lettura dei singoli bit contenuti in un byte. Ho cercato un pò in giro ma non riesco a trovare una soluzione che si adatti al mio problema. :muro:

Grazie in anticipo

cionci
13-09-2007, 10:45
for(int i = 0; i < 32; ++i, data >> 1)
{
lsb = data & 1;
//a questo punto puoi stampare lsb o metterlo dove ti pare
}

andbin
13-09-2007, 10:46
Ciao a tutti!
Ho un problema riguardante l'accesso e la lettura dei singoli bit contenuti in un byte. Ho cercato un pò in giro ma non riesco a trovare una soluzione che si adatti al mio problema. :muro:Dipende cosa devi fare (spiega meglio).
In Java gli operatori & | ^ sono "bitwise" (cioè operano sui bit) se gli operandi sono di tipo intero. In più ci sono gli operatori di shift <<, >> e >>>

xirc85
13-09-2007, 10:52
In pratica ho una stringa che converto in un array di byte e per ogni byte di questo array devo leggere i singoli bit che dovrò in seguito codificare in modo grafico...

cionci
13-09-2007, 10:56
Dovrebbe andare bene come ti ho detto...ovviamente devi arrivare fino ad 8 bit.

xirc85
13-09-2007, 10:59
Purtroppo non funziona, poichè mi da un errore sull'operatore ">>"...
Non riesco a capire il motivo però :(

andbin
13-09-2007, 11:06
public class Prova
{
public static void main (String[] args)
{
String s = "ciao";
byte[] v = s.getBytes ();

for (byte b : v)
{
for (int m = 128; m != 0; m >>= 1)
System.out.print ((b & m) != 0 ? '1' : '0');

System.out.print (" ");
}
}
}

cionci
13-09-2007, 11:10
Mi ero dimenticato un uguale...comunque va meglio quello di andbin ;)

xirc85
13-09-2007, 11:11
GRAZIE MILLE!!!!! Funziona!
Mi hai salvato dai guai!!!::yeah: