CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] Aide conversion binaire vers decimal

[SerialPlayer]
[SerialPlayer]
Niveau 10
27 septembre 2011 à 20:41:33

Bien l'bonsoir ! :hap:

Bon alors voila je cherche un moyen de convertir un nombre binaire (juste un nibble soit 4 bits) en nombre décimal.
auriez-vous une idée d'algorithme ?

Parce que je doit rendre un TP dont le but est de réaliser un programme qui convertit :
- DECIMAL vers BINAIRE (ça c'est fait)
- et BINAIRE vers DECIMAL (c'est une autre affaire :peur: )
Je fait donc appel à votre aide pour avancer.

S'il vous plait

Merci :)

Akewing
Akewing
Niveau 10
27 septembre 2011 à 21:02:05

T'est en quelle classe ? :curieux:
_______________________
Tomcat will never die :fier:
http://s3.noelshack.com/uploads/images/11628405213183_f_14.jpg

Pocolo
Pocolo
Niveau 10
27 septembre 2011 à 22:28:48

Comment est "représenté" le nombre binaire? (int, tablreau de int,etc...)

Nightmarez
Nightmarez
Niveau 9
28 septembre 2011 à 14:19:45

Si le nombre est ecrit en characteres, tu fais une boucle qui parcoure la chaine et tu fais des multiplications par 2.

[SerialPlayer]
[SerialPlayer]
Niveau 10
28 septembre 2011 à 20:50:08

Je suis en première année de DUT info :)

En fait, je demande à l'utilisateur d'entrer 4 nombres que je définie comme "int". (Donc pour l'instant je me limite a 4 bits).
Puis ensuite je me perd et je ne sais plus quoi faire.

:honte:

041
041
Niveau 10
28 septembre 2011 à 21:02:00

n1^4+n2³+n3²+n1 :(

Pocolo
Pocolo
Niveau 10
28 septembre 2011 à 21:03:05

" je demande à l'utilisateur d'entrer 4 nombres que je définie comme "int". (Donc pour l'instant je me limite a 4 bits). "

Un int c'est 4 bytes (octets) et 32 bits, enfin ça peut varier selon l'implémentation mais en général c'est ça.

041
041
Niveau 10
28 septembre 2011 à 21:03:43

Oula, non.
n1*2³ + n2*2² +n3 *2 + n4

J'suis fatigué, désolé :hap:

[SerialPlayer]
[SerialPlayer]
Niveau 10
28 septembre 2011 à 21:13:57

@Pocolo : Oups, je me suis mal exprimé, quand je voulait dire je me limite à 4 bits, je parler du nombre binaire que je compte convertir (qui fait 4 bits) :rouge:

Je te remercie 041, je commencer à patauger ! :ok:

[SerialPlayer]
[SerialPlayer]
Niveau 10
28 septembre 2011 à 21:14:19

"commencais"
Dsl du double-post

Pocolo
Pocolo
Niveau 10
28 septembre 2011 à 21:28:29

Tiens si tu veux, je t'ai fais un truc rapidement sur codepad dont tu peux peut-être t'inspirer:

http://codepad.org/SIbaSW6V

Il y a une fonction et un petit exemple dans le main.

Pocolo
Pocolo
Niveau 10
28 septembre 2011 à 21:42:58

A noter aussi que sur ma fonction on peut prendre plus que 4 bits par contre, vu que c'est un int on peut en prendre jusqu'à 10.

Nightmarez
Nightmarez
Niveau 9
28 septembre 2011 à 23:25:41

Genre en entree t'as "1010" et tu dois convertir ca en decimal ?

Pocolo
Pocolo
Niveau 10
29 septembre 2011 à 00:24:21

En fait en relisant sa phrase je me rends compte qu'il prend 4 int en entrée ( genre fonction(int, int, int ,int); ), j'avais lu 4 "chiffres" au lieu de "nombre".

tbop2
tbop2
Niveau 10
29 septembre 2011 à 01:14:14

Il est bizarre ton cours s'il t'apprends pas comment convertir du binaire en décimal de façon simple (de mon temps on faisait ça en seconde....).

Sinon un peu compliqué ta fonction Pocolo et chelou de donner un int en entrée de ta fonction. Ca serait plus joli et logique de mettre des unsigned char ce qui se rapproche le plus d'un bit en soi (autant optimiser un peu). Dommage que les std::vector<bool> n'existent pas en C (ce qui parait contradictoire quand on y pense).

int BinaryToInt(unsigned char* bits)
{
...int theInt = 0;
...size_t i = sizeof(bits) - 1;
...
...while(i != -1)
......theInt |= bits[i] << i--;
...
...return theInt;
}

Normalement ça doit le faire !

Pocolo
Pocolo
Niveau 10
29 septembre 2011 à 01:16:26

" Ca serait plus joli et logique de mettre des unsigned char ce qui se rapproche le plus d'un bit en soi "

C'était pour rester fidèle a ce que l'auteur du topic voulait en fait, des int donc, mais une fois de plus j'avais compris 1 int au lieu de 4.

tbop2
tbop2
Niveau 10
29 septembre 2011 à 01:24:49

C'est vrai pardon pour les int.

Pour le reste ya quand même 11 char, 3 int et 2 appels à des fonctions standards tout ça pour une conversion quasi bas-niveau... ca fait beaucoup :) !

Pocolo
Pocolo
Niveau 10
29 septembre 2011 à 01:30:37

La fonction n'est pas des plus jolies, je le reconnais tout a fait.

Mais en fait vu que son prof veut qu'il utilise 4 int en entrée (et que ça se limite à 4 pseudo-bits) je pense qu'il veut que ça soit fait à l'aide de multiplications (un peu comme un certain "041" l'a proposé plus haut) plutôt que par les opérateurs binaires.

tbop2
tbop2
Niveau 10
29 septembre 2011 à 09:36:13

Alors si c'est en effet une méthode par multiplication un petit conseil pour l'auteur : "commence par le haut".

[SerialPlayer]
[SerialPlayer]
Niveau 10
29 septembre 2011 à 20:17:15

Je vous remercie tous, grace à votre aide j'ai pu comprendre ce que je cherchais à faire !! :)

Merci à Pocolo, Tbop2, Nightmarez. :ok:

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment