Les Bits

Signaler
Messages postés
9
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
15 avril 2005
-
Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011
-
Bonjour je suis nouveau ici et pas tres experimenter en c++ je fait cela pour mon propre plaisir personnel jai msvc++ 2003.net comme compilateur

bon ma question est la suivante jai plus ou moin compris les bit 8 ,16,32 .. arretez moi si jme trompe ... donc si jai bien compris un char cest 8 bit donc si il est unsigned donc c 0 a 255 donc 256 charactere que je peut metre lun a la suite de lautre dans le postif .... et si il est signed c 128 charactere que je peut metre un a suite de lautre ... mais pour ce qui est du negatif ... -128 ... comment des charactere peut etre negatif ... sois je nais rien compris a ce que jai lu ou que jsuis pas capable de figurer un charactere dans le negatif ce que sa donnerais... si vous pouvez eclairer ma lenterne sa serais tres apprecier merci ...

8 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
En fait les caractères ne sont que des entiers (sur 8 bits comme tu l'a dit) selon l'association de la table ASCII. Cette table donne l'association pour les valeurs de 0 à 127 et donc ça tient sur un signé de 8 bits.

Maintenat des extensions à cette table existent pour les cractères accentués notamment et on utilise alors les valeurs de 128 à 255. Le pb c'est que ça tient bien sur 8 bits mais non signé.

Cependant, dans le code, on utilise simplement des char signé même pour les valeurs de 128 à 255. il ne faut pas oublier que en mémoire 8 bits c'est 8 bits, c'est juste pour nous (et le compilo) que l'on décide si cela sera une réprésentation signée ou non. Il faudra donc faire attention lors des opérations arithmétiques sur ces entiers.
Messages postés
92
Date d'inscription
mardi 25 février 2003
Statut
Membre
Dernière intervention
15 mai 2006

Pour résumer ce qu'a di ymca, si tu veu juste utiliser les char pour
des caracteres, tu n'a pas a te soucier si c'est signé ou non.

De plus, si je ne di pas de bétise, un char, c'est 8bits, qui donne une
valeur hexadecimal(de 00h 0FFh). et a ce niveau la, le signe
n'intervient pas.

Mais comme c'est difficile de compter en hexa (on aurai appri ca des la primaire on aurai pa de pb)
au lieu d'associer un char avec un hexa, on prefere associer le char
avec un entier. Et c'est la que les ennui commencent. Les entiers
peuvent etre signés ou non donc bah on fini par s'emmeller les
pinceaux... (FFh=255 en non signé, et -1 en signé, si je me trompe pas)

En tout cas, pour la majoriter des application, il est pas util de considerer un char comme "signé"
Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011

Pour l'histoire du 255 et -1 en signé/non signé:



dans le cas d'un `char` signé, la plage des valeurs est de -128 à 127, 7 bits pour le nombre et 1 bit pour le sign(+/-)

dans le cas d'un `char` non signé, la plage des valeurs est de 0 à 255,
8 bits pour le nombre et 0 bit pour le sign(positif assuré)



Pour plus d'infos(beaucoup plus, voir même toute l'histoire de l'ascii/ansi/unicode/...):



http://www.di-mgt.com.au/cryptoInternational.html

http://www.cs.tut.fi/~jkorpela/chars.html






~(.:: NitRic ::.)~
Messages postés
72
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
11 avril 2005
1
Il y a aussi les complément à 1 et à 2 pour faire un nombre binaire négatif.......

Comme pour une soustraction de nombre binaire, çà n'existe pas !!!

On additionne un nombre négatif ( ce qui revient au même) !!!

Mais là je crois qu'on s'éloigne de la question.

Renseigne toi sur le tableau ascii et unicode.

E soto la toto li touti, e soto la toto la tou..... ok ?
Messages postés
9
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
15 avril 2005

Merci a tous pour votre aide c'est tres apprecier :)
Messages postés
72
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
11 avril 2005
1
Si une réponse te satisfait, clique sur le bouton correspondant !!!

Si on fait une recherche, on sait que le sujet à trouver une réponse....

C'est mieux pour tout le monde ;-)

E soto la toto li touti, e soto la toto la tou..... ok ?
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
Nitrtic -> "
dans le cas d'un `char` signé, la plage des valeurs est de -128 à 127, 7 bits pour le nombre et 1 bit pour le sign(+/-)"

faux archifaux, ctte méthode est digne d'un 80186.(et encore)

avec cette méthode +0!=-0

aujourd'hui, comme dit angsthase, c'est le complément a 2 qui est utlisé, pasque le cpt a 1 pose le meme pb.

ca m'étonne que tu ne saches pas ca, tu fais de l'asm toi pourtant non?


_______________________


Omnia vincit labor improbus
Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011

Arnaud16022, c'est vrai, désolé ...

Moi faire de l'ASM? Oui en effet, mais je

n'ai que quelques bases et rien de plus, je m'en

sert pour optimiser seulement(c'est plutôt rare

mais bon ...)




~(.:: NitRic ::.)~