Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1615 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Besoin d'aide pour la comprehension d'un script

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Besoin d'aide pour la comprehension d'un script

n°2202895
skiny13
Posté le 13-09-2013 à 20:03:22  profilanswer
 

Bonjour,  
 
je dois pour les cours écrire une fonction qui transforme un entier donné en argument un binaire (sur 1 octet). Hors, j'avais il y a quelques  temps déjà utilisé une fonction comme ça, mais à l'époque je n'avais pas pris la peine de la comprendre, car c'était pas vraiment de mon niveau (en fait, je n'avais pas appris le décalage de bits). Bref, un forumeur m'avais donné un bout de code fonctionnel, donc c'était tout bon, mais j'aimerais maintenant qu'on m'aide à le comprendre !  
 
Voilà la fonction en question :  
 

Code :
  1. public static int[] entierToBinaire(int ent){
  2.  int res[] = new int[8];
  3.  for(int i=0; i<8; i++){
  4.   res[i] = ((ent >> i) & 0x01);
  5.  }
  6.  return res;
  7. }
  8. public static void main(String argv[]){
  9.  for(int i=0; i<8; i++){
  10.   System.out.print(entierToBinaire(64)[i]);
  11.  }
  12. }
  13. }


Je ne comprend vraiment pas le fait, de diviser par une puissance nième de deux à chaque itérations et surtout, le but du ET logique entre le résultat du décalage et 0x01.
Si quelqu'un pouvait m'expliquer, ça serai super !  

mood
Publicité
Posté le 13-09-2013 à 20:03:22  profilanswer
 

n°2202907
gilou
Modérateur
Modzilla
Posté le 13-09-2013 à 22:11:29  profilanswer
 

ent, il est déjà en binaire. Ta conversion, en fait, elle convertit un entier (en binaire) en tableau d'entiers valant 0 ou 1 représentant les bits binaires de ent.
ent >> i decale de i bits vers la droite.  
& 0x01 masque tous les bits sauf le premier
 
exemple:
ent = 10,  
Donc en binaire ent c'est 00001010
i = 0  ent >> i c'est 00001010 et (ent >> i ) && 0x01 c'est 00000000 soit 0 donc res[0] = 0
i = 1  ent >> i c'est 00000101 et (ent >> i ) && 0x01 c'est 00000001 soit 1 donc res[1] = 1
i = 2  ent >> i c'est 00000010 et (ent >> i ) && 0x01 c'est 00000000 soit 0 donc res[2] = 0
i = 3  ent >> i c'est 00000001 et (ent >> i ) && 0x01 c'est 00000001 soit 1 donc res[3] = 1
i = 4  ent >> i c'est 00000000 et (ent >> i ) && 0x01 c'est 00000000 soit 0 donc res[4] = 0
...........
i = 7  ent >> i c'est 00000000 et (ent >> i ) && 0x01 c'est 00000000 soit 0 donc res[7] = 0
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Besoin d'aide pour la comprehension d'un script

 

Sujets relatifs
Aide création boutique en ligneBesoin d'aide pour HTML/CSS
Aide php 2 images aléatoireLancer un script Python Par la commande Batch "SCHTASKS"
Executer un script python par la commande Batch SCHTASKSprogrammation C [aide]
Impossible d'executer script linux sous PHPAide WAMP + SSH2
Aide Blog TUMBLR (Design) 
Plus de sujets relatifs à : Besoin d'aide pour la comprehension d'un script


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR