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

  FORUM HardWare.fr
  Programmation
  C++

  codage en mémoire d'un nbr signé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

codage en mémoire d'un nbr signé

n°271279
blackgodde​ss
vive le troll !
Posté le 17-12-2002 à 13:54:08  profilanswer
 

Bonjour,
 
j'ai un gros pb sur une base du c :
 
comment est codé un nombre signé ne mémoire (sur pc) ?
 
prenons comme exemple un long : codé sur 4 octets
 
si il n'est pas signé, ds le mémoire:
 
0 correspondra à 00 00 00 00,
1 correspondra à 01 00 00 00,
et le maximum à : FF FF FF FF.
 
mais comment cela se passe-t-il si il est signé ?
je suppose que 0 sera tjs 00 00 00 00, mais -1 ?
il me semble avoir un vague souvenir d'un bit pour le signe, mais je ne sais plus lequel c'est ...


---------------
-( BlackGoddess )-
mood
Publicité
Posté le 17-12-2002 à 13:54:08  profilanswer
 

n°271409
Carbon_14
Posté le 17-12-2002 à 14:20:38  profilanswer
 

Le plus à gauche.
Si unsigned, on va de 0000 0000 à FFFF FFFF.
Si signé, positif de 0000 0000 à 7FFF FFFF et négatif de 8000 0000 à FFFF FFFF.
C'est pourquoi un int non signé 16 bits (j'y suis resté :D) va de 0 à 65535, signé de -32768 à +32767 (sauf erreur, de tête, suis pas du métier).
 
EDIT : pour les float, double,.. je sais plus trop, y a mantisse et exposant => faut voir le détail, ça devrait être analogue, sauf que c'est par tronçons (signe de mantisse, signe d'exposant).


Message édité par Carbon_14 le 17-12-2002 à 14:22:41
n°271434
blackgodde​ss
vive le troll !
Posté le 17-12-2002 à 14:31:31  profilanswer
 

la sur 16 bits c un short, un int depend de l'implementation


---------------
-( BlackGoddess )-
n°271439
blackgodde​ss
vive le troll !
Posté le 17-12-2002 à 14:32:44  profilanswer
 

en signé : FF FF FF FF correspond à -1 ou à -max ?


---------------
-( BlackGoddess )-
n°271658
HelloWorld
Salut tout le monde!
Posté le 17-12-2002 à 17:28:26  profilanswer
 

a -1


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°271673
blackgodde​ss
vive le troll !
Posté le 17-12-2002 à 17:52:22  profilanswer
 

ok, mci a vs 2 :)


---------------
-( BlackGoddess )-
n°271787
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 17-12-2002 à 20:14:20  profilanswer
 

tout ça n'est pas défini par la norme: tout depend du système : de son endianess et du codage empoyé (complement à 2 dans la majorité des cas, mais ca peut etre complément à 1, etc...) toutes les specifications disponibles sont dans climits et limits


---------------
du bon usage de rand [C] / [C++]
n°271840
mrbebert
Posté le 17-12-2002 à 21:51:40  profilanswer
 

Sur PC, c'est le complément à 2. C'est à dire que, pour convertir, tu inverses et tu ajoutes 1.
Par exemple, pour calculer -1 :
1 (en hexa)  : 00000001
en inversant : 11111110
+1           : 11111111
 
Si tu refais la même opération en partant de -1, ca marche bien. Aussi pour 0 :)


Message édité par mrbebert le 17-12-2002 à 21:52:45
n°271851
blackgodde​ss
vive le troll !
Posté le 17-12-2002 à 22:40:29  profilanswer
 

ok, super, merci :)


---------------
-( BlackGoddess )-
n°271904
Musaran
Cerveaulté
Posté le 18-12-2002 à 05:45:49  profilanswer
 

En prenant un hypotétique entier de 3 bits, avec les représentaions la plus classique, voici une table des valeurs:

Représentation binaire, poids faible à droite
  |    Non signé
  |    |   Signé, complément à 2
  |    |   |   Signé, bit de signe
 000   0   0   0
 001   1   1   1
 010   2   2   2
 011   3   3   3
 100   4  -4  -0
 101   5  -3  -1
 110   6  -2  -2
 111   7  -1  -3

Il y a bouclage entre le haut et le bas si on dépasse.
 
Signé, complément à 2:
Le bit de gauche n'est à 1 que pour des valeurs négatives.
0 est considéré positif.
Avantage: l'addition/soustraction de nombres est identique, qu'ils soient négatifs ou positifs.
 
Signé, bit de signe:
Le bit de gauche est le signe, indépendamment du reste.
Avantage: la valeur absolue est directement lisible.
Inconvénient: cas -0 à priori inutile et même encombrant.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
mood
Publicité
Posté le 18-12-2002 à 05:45:49  profilanswer
 

n°271913
blackgodde​ss
vive le troll !
Posté le 18-12-2002 à 08:35:04  profilanswer
 

merci bcp :) ca c super clair :)


---------------
-( BlackGoddess )-

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

  codage en mémoire d'un nbr signé

 

Sujets relatifs
[PASCAL] cherche livre "aide memoire du turbo pascal"[C - Visual Studio] Detection de fuite mémoire
Acces direct mémoireLaTeX : recherche un site pour me rafraichir la memoire
Pb d'"allocation mémoire avec STL string[C] Listes chainées et allocation mémoire
Envie de codage -> Un sort de TCHAT mais connais rien !Fuites mémoire avec QT
Et mon bit de signe ?Représentation d'un objet en mémoire ?
Plus de sujets relatifs à : codage en mémoire d'un nbr signé


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