Opérations de base sur les bits

Résolu
Theo_0055 Messages postés 275 Date d'inscription mardi 21 juillet 2020 Statut Membre Dernière intervention 19 janvier 2023 - 17 oct. 2022 à 11:36
Theo_0055 Messages postés 275 Date d'inscription mardi 21 juillet 2020 Statut Membre Dernière intervention 19 janvier 2023 - 24 oct. 2022 à 20:55

Bonjour,j'ai un exo où on me demande de manipuler de trés grand nombre et on me demande de faire des soustraction,addition,multiplication,nombre de bits... en binaire mais je peux pas faire cette exo sans comprendre d'abord la logique de comment on fait pour des petits nombres déja

Par exemple en multiplication je sais que:

Ex:2x3

2=0000 0010

3=0000 0011

ETAPE1:on fait 1xtous les bits de 2

ETAPE2:On déacale d'1 cran vers la droite et on fait 1 x tous les bits de 2

ETAPE3:On déacale d'1 cran  vers la droite et on fait 0 x tous les bits de 2

ETAPE4:On déacale d'1 cran  vers la droite et on fait 0 x tous les bits de 2

......

ETAPE8:On déacale d'1 cran  vers la droite et on fait 0 x tous les bits de 2

Derniere etape:Additionner les bits par colonne

En gros donc j'ai compris qe une multiplication binaire et une combinaison d'addition det de décalge sauf que l'implemter c'est autre chose.

Que dois je faire pour arriver a écrire cette fonction?

Bon j'attaque celui qui est le plus difficile selon moi et apres  les autres on verra

25 réponses

Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 11
23 oct. 2022 à 13:38

variable qui disparait à la fin de la fonction...

dans ta copie d'écran tu fais 0 + a et tu obtiens bien a, je ne vois pas le problème dans le code déroulé même s'il reste faux.

0
Theo_0055 Messages postés 275 Date d'inscription mardi 21 juillet 2020 Statut Membre Dernière intervention 19 janvier 2023 1
23 oct. 2022 à 13:45

Merci moi aussi je pense pareil 

Si je trouve de toute facon je vous dirais

Merci encore

0
Theo_0055 Messages postés 275 Date d'inscription mardi 21 juillet 2020 Statut Membre Dernière intervention 19 janvier 2023 1
23 oct. 2022 à 17:46

Bonjour je voulais savoir si je passe de 32 a 1024 bit comment modifier les fonctions suivantes svp

grand_entier_t *ge_set_bit(grand_entier_t *e, uint32_t x) {
     //e->size=4;
    e->data[x/32] |= (1 << (x % 32));
    return e;
}


grand_entier_t *ge_clr_bit(grand_entier_t *e, uint32_t x) {
     //e->size=4;
    e->data[x/32] &= ~(1 << (x% 32));
   
    return e;
}


char ge_get_bit(grand_entier_t *e, uint32_t x) {
   //e->size=4;
  return (e->data[x/32] >> (x%32)) & 1;// return (e->data[x/32] & (1 << (x % 32)))
  
}

int ge_nb_bits(grand_entier_t *e) {
  
  return e->size*32;
  
}
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 11
24 oct. 2022 à 20:51

Il suffit de remplacer le nombre 32 par le nombre 1024 dans tout le code !
Mais je n'ai jamais entendu parler du type uint1024_t !

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Theo_0055 Messages postés 275 Date d'inscription mardi 21 juillet 2020 Statut Membre Dernière intervention 19 janvier 2023 1
24 oct. 2022 à 20:55

Merci beaucoup pour votre aide

Finish❤️

0
Rejoignez-nous