Et si on veut afficher le code ASCII du caractère ?
Qu'est-ce qui te fait croire qu'il y a un rapport entre un code ascii et la conversion d'un char en int ?
Je pensais au débogage d'un algorithme quelconque sur une plate-forme où on a cette correspondance.
-- ;-)
kanze
Loïc Joly wrote:
wrote:
nico wrote:
les char sont signés, pourquoi faire un casting vers de l'insigned ?
Les char sont parfois signé, parfois non. Mais sauf de rares exceptions, toutes les valeurs d'un char, signé ou non, peuvent se représenter sur un int. La conversion vers int est donc la solution à préférer.
J'irais jusqu'à dire que si l'on souhaite l'imprimer en décimal, ce n'est probablement pas un char (type représentant un caractère) qu'on veut mais un signed char ou un unsigned char (tous deux types représentants des entiers en petit nombre).
Tout à fait, mais il s'agit là d'une convention de codage (à laquelle j'adhère), et non d'une règle du langage. Et il s'avère que pour des raisons historiques, on trouve encore souvent des char pour des petits entiers. Pire, on les trouve souvent pour les petits entiers signés, au point que même si les vendeurs de certains compilateurs savent que logiquement, on serait mieux avec un char non-signé, ils les font signés pour ne pas casser du code existant (qui est de toute façon cassé selon la norme C++, la norme C, et même K&R I, mais qui a toujours marché avec les compilateurs courants).
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Loïc Joly wrote:
kanze@gabi-soft.fr wrote:
nico wrote:
les char sont signés, pourquoi faire un casting vers de
l'insigned ?
Les char sont parfois signé, parfois non. Mais sauf de rares
exceptions, toutes les valeurs d'un char, signé ou non,
peuvent se représenter sur un int. La conversion vers int
est donc la solution à préférer.
J'irais jusqu'à dire que si l'on souhaite l'imprimer en
décimal, ce n'est probablement pas un char (type représentant
un caractère) qu'on veut mais un signed char ou un unsigned
char (tous deux types représentants des entiers en petit
nombre).
Tout à fait, mais il s'agit là d'une convention de codage
(à laquelle j'adhère), et non d'une règle du langage. Et il
s'avère que pour des raisons historiques, on trouve encore
souvent des char pour des petits entiers. Pire, on les trouve
souvent pour les petits entiers signés, au point que même si les
vendeurs de certains compilateurs savent que logiquement, on
serait mieux avec un char non-signé, ils les font signés pour ne
pas casser du code existant (qui est de toute façon cassé selon
la norme C++, la norme C, et même K&R I, mais qui a toujours
marché avec les compilateurs courants).
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
les char sont signés, pourquoi faire un casting vers de l'insigned ?
Les char sont parfois signé, parfois non. Mais sauf de rares exceptions, toutes les valeurs d'un char, signé ou non, peuvent se représenter sur un int. La conversion vers int est donc la solution à préférer.
J'irais jusqu'à dire que si l'on souhaite l'imprimer en décimal, ce n'est probablement pas un char (type représentant un caractère) qu'on veut mais un signed char ou un unsigned char (tous deux types représentants des entiers en petit nombre).
Tout à fait, mais il s'agit là d'une convention de codage (à laquelle j'adhère), et non d'une règle du langage. Et il s'avère que pour des raisons historiques, on trouve encore souvent des char pour des petits entiers. Pire, on les trouve souvent pour les petits entiers signés, au point que même si les vendeurs de certains compilateurs savent que logiquement, on serait mieux avec un char non-signé, ils les font signés pour ne pas casser du code existant (qui est de toute façon cassé selon la norme C++, la norme C, et même K&R I, mais qui a toujours marché avec les compilateurs courants).
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34