Convertion binaire negatif en decimal
netfire
-
Heliotte Messages postés 1561 Statut Membre -
Heliotte Messages postés 1561 Statut Membre -
Bonjour,
Sous debian en C je voudrais convertir un nombre binaire en decimal, mais le nombre binaire à traiter peut-être positif comme négatif, il faudrait donc un système de détection de bit signé ou non signé non ? comment faire ? (je suis débutant en C)
merci d'avance
Sous debian en C je voudrais convertir un nombre binaire en decimal, mais le nombre binaire à traiter peut-être positif comme négatif, il faudrait donc un système de détection de bit signé ou non signé non ? comment faire ? (je suis débutant en C)
merci d'avance
7 réponses
-
En C si tu déclare un 'char', c'est un octet considéré comme signé :
0x00 -0x7F = positif (0 à 127), 0xFF-0x80 = négatif (-1 à -128)
Donc pour :
char toto= 0xFF;
printf( "%d", toto ); donnera "-1".
C'est pareil pour 'short' (2 octets:), 'long' (4 octets)...
unsigned char, lui est considéré comme non signé (0x00-0xFF) : 0 à 255 -
esse-que le script va détecter seul si le bit est signé ou non signé ? (c'est pour convertir le binaire en décimal d'un capteur qui peut envoyer du négatif comme du positif)
-
Bonjour netfire,
lien vers une source : https://fr.wikipedia.org/wiki/Syst%C3%A8me_binaire#Repr.C3.A9sentation_des_entiers_n.C3.A9gatifs
Cet article reprends le nombres binaires positifs et les nombres binaires négatifs.
Car votre résultat dépend du complément que vous aller utiliser : complément à 1 ou complément à 2. -
donc si on se place sur 8 bits en complément à 2 il faut que le programme détecte un premier bit à 1, à gauche c'est un nombre négatif sinon si c'est un 0 c'est un nombre positif non ? y-a-il une fonction pour ça ?
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
exact.
Si tu fait lire en décimal par l'ordinateur, il ajoutera un signe "-" (à gauche ou à droite) de ce nombre.
Pour le détecter en binaire, il faut lire "bit par bit", et le premier 'bit' te donne cette indication. -
désolé de cette question (je suis très débutant en c) mais comment fait-on pour lire bit par bit ?
-
Pour cela, je ne peux que te conseiller de te rendre sur ce site : https://fr.wikipedia.org/wiki/Manipulation_de_bit
Cordialement