Singné ou non ?

cs_darktiger Messages postés 6 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 20 juillet 2003 - 21 mai 2003 à 18:13
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 - 22 mai 2003 à 07:12
question de debutant :
Quelle est la difference entre une variable unsigned et une variable signed ?(mis à part le fait qu'elles peuvent etre ou non negatives). A quoi cela sert il ?

5 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 mai 2003 à 18:21
A faire des calculs, cette blague.
la signed est consideree negative quand son bit le + haut est positonne. La difference se situera surtout au noiveau de la division.
BruNews, ciao...
0
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
21 mai 2003 à 18:48
Salut, je vais t'expliquer,
quand tu déclare un
int i;
La variable i contient 32bits soit 1bit de signe et 31bits de données, c'est a dire que le premier bit indique si le nombre est positif ou négati et les 33 autres la grandeur de celui-ci. On peut donc stocker des valeurs allant de 2^31 a -2^31.
Le unsigned int est identique sauf qu'il indique qu'il n'y a pas de bit de signe, (le nombre est positif), il y a donc 32 bits de données. on peut donc y stocker des valeurs allant de 0 à 2^32.
Voilà, en fait on utilise les unsigned pour faire des calculs non signés et allant de 0 à 2^32, les signés font aussi des calculs dans le négatif mais sockent des valeurs allant de -2^31 à 2^31.
Attention, c'est valeurs dépendent du compilateur et de la machine (16 ou 32 bits et aujourd'hui aussi 64bits). Pour connaitre ces limites tu peux consulter le fichier limits.h ou climits.h ou climits (je sais plus si y'a un e ou pas a limit :-) ).
Voila, j'espère que tu as bien compris l'interêt des unsigned.
Allé, bonne prog.
A+.
Bouba
0
cs_darktiger Messages postés 6 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 20 juillet 2003
21 mai 2003 à 19:49
-------------------------------
Réponse au message :
-------------------------------

> Salut, je vais t'expliquer,
> quand tu déclare un
> int i;
> La variable i contient 32bits soit 1bit de signe et 31bits de données, c'est a dire que le premier bit indique si le nombre est positif ou négati et les 33 autres la grandeur de celui-ci. On peut donc stocker des valeurs allant de 2^31 a -2^31.
> Le unsigned int est identique sauf qu'il indique qu'il n'y a pas de bit de signe, (le nombre est positif), il y a donc 32 bits de données. on peut donc y stocker des valeurs allant de 0 à 2^32.
> Voilà, en fait on utilise les unsigned pour faire des calculs non signés et allant de 0 à 2^32, les signés font aussi des calculs dans le négatif mais sockent des valeurs allant de -2^31 à 2^31.
> Attention, c'est valeurs dépendent du compilateur et de la machine (16 ou 32 bits et aujourd'hui aussi 64bits). Pour connaitre ces limites tu peux consulter le fichier limits.h ou climits.h ou climits (je sais plus si y'a un e ou pas a limit :-) ).
> Voila, j'espère que tu as bien compris l'interêt des unsigned.
> Allé, bonne prog.
> A+.
> Bouba
>
>
> Pourquoi 2^31? (pourquoi 2???)
Merci de ces explications ...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 mai 2003 à 19:55
sur 1 bit, 2 valeurs possibles.
sur 2 bits, 4 ....
sur 3 ... , 8 ...
binaire est base 2.
BruNews, ciao...
0

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

Posez votre question
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
22 mai 2003 à 07:12
2^31 car 32 bits (1bits de signes et 31 de données), c'est deux car en info les états sont 0 ou 1, on effectue tout en base 2 (eh oui, c'est la seul solution q'on ait trouvé étant compatible avec les cartes électronique d'un PC, les russes on tentés en base 3 je crois mais ce sont plantés :-) ). Voila, c'est tout bête.
++
Bouba
0
Rejoignez-nous