Aide sur java

redtotheone Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -  
tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   122
 
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