ho fatto la funzione a mano
adesso il problema (in verità non è un problema) è che mi tronca sempre due bit quando converto 1byte in stringa. Mi prende sempre 6 bit troncando i due bit + significativi. Immagino lo faccia perché sono due 0 (e lo saranno sempre perché da standard), quindi non pesano sulla conversione. E' possibile invece fare in modo che mantenga tutti gli 8 bit? La conversione la faccio così:
byte[] bytes = new byte[]{b[i]};
BigInteger bi = new BigInteger(bytes);
String s=bi.toString(2);