Aide sur java

Fermé
redtotheone Messages postés 31 Date d'inscription vendredi 16 septembre 2011 Statut Membre Dernière intervention 25 décembre 2011 - 25 déc. 2011 à 22:31
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 - 25 déc. 2011 à 23:27
Bonjour,
j'ai un code en java et j'aimerai bien si quelqu'un peut m'aidé a comprendre se code :

public int getbit(byte[] l, int position){
int curbyte = (position)/8;
int posbit = position%8 ;
byte b = l[curbyte];

int valbit= (b>>(7-posbit)&0x0001);



return valbit;
}
public void setbit(byte[] l,int position,int val){

int curbyte = position/8;
int posbit = position%8 ;
byte b = l[curbyte];
val = val<<8-posbit-1;


int s = (0x1<<8-posbit-1);
s = ~s;
b = (byte) (b&s);
b= (byte)(b|val);
l[curbyte]= b;
}


A voir également:

1 réponse

tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 121
25 déc. 2011 à 23:27
Mmmmmmmmm,

Je vais vous donner un exemple pour bien expliquer prenons la suite:

10001101010100001010101010101010

Ces "bit" seront passés sous la forme d'un tableau de Byte (octet) comme suit:

[10001101][01010000][10101010][10101010]

C'est le tableau "l" passé comme paramètre.

Puis nous avons le paramètre "position" qui signifie la position d'un bit dans cette série, par exemple 14

La fonction getbit va vous retourner 1 si le bit N° 14 est à 1 ou 0 dans le cas contraire, dans notre cas elle vous donnera 1

La fonction setbit vous permet de définir la valeur de ce bit à 0 ou à 1.
0