Les Bits

xelados Messages postés 9 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 15 avril 2005 - 5 avril 2005 à 15:54
NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011 - 7 avril 2005 à 01:42
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

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
5 avril 2005 à 16:15
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.
0
cleter Messages postés 92 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 15 mai 2006
5 avril 2005 à 17:25
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é"
0
NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011
6 avril 2005 à 03:28
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 ::.)~
0
angsthase Messages postés 72 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 11 avril 2005 1
6 avril 2005 à 09:10
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 ?
0

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

Posez votre question
xelados Messages postés 9 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 15 avril 2005
6 avril 2005 à 15:07
Merci a tous pour votre aide c'est tres apprecier :)
0
angsthase Messages postés 72 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 11 avril 2005 1
6 avril 2005 à 16:59
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 ?
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
6 avril 2005 à 22:23
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
0
NitRic Messages postés 402 Date d'inscription mardi 1 mai 2001 Statut Membre Dernière intervention 15 août 2011
7 avril 2005 à 01:42
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 ::.)~
0
Rejoignez-nous