re-hello !
j'ai besoin de la commande char() en basic, càd obtenir un caractère à partir du code ASCII
ce n'est pas pour printf() que j'en ai besoin
et puis c'est pour GTC aussi ^^
merci
Martial Demolins (./5) :
donc plutôt 0-255 dans ce cas-là.
geogeo (./9) :
D'ailleur les chaînes de caractères sont passées en char * pas en unsigned char *.
Martial Demolins (./8) :
euh... si je me trompe pas, on est sur un forum TI, pour les quelles le code ASCII utilisé est étendu à 255... bref, je prétends pas te l'apprendre, mais ça me semble plus adapté ici, c'est tout.
et toi non plus, tu ne m'as pas appris qu'un caractère ascii non-étendu est codé sur 7 bits...
Godzil (./16) :
oula, c'est meme pire... char n'a meme pas une taille fixe... "il doit permetre de stoquer les caracteres"
bref en gros une machine qui permet d'avoir que 64 caracteres pourrait avoir un char 6bits
Pollux (./18) :
oui mais c'est pas forcément les types les plus efficaces... par exemple sur x86 un s32 est plus rapide qu'un s16, d'où l'intérêt de définir 'int' comme étant le plus efficace des types de plus de 16 bits ^^
Pollux (./18) :
et puis il y a d'autres facteurs, par exemple size_t permet d'adapter la précision des pointeurs à la capacité mémoire de la plateforme : sur une plateforme 16 bits, on peut se contenter de stocker une longueur sur 16 bits, alors que sur une plateforme 64 bits on va avoir besoin de 64 bits...
Pollux (./18) :
oui mais c'est pas forcément les types les plus efficaces... par exemple sur x86 un s32 est plus rapide qu'un s16, d'où l'intérêt de définir 'int' comme étant le plus efficace des types de plus de 16 bits ^^
et puis il y a d'autres facteurs, par exemple size_t permet d'adapter la précision des pointeurs à la capacité mémoire de la plateforme : sur une plateforme 16 bits, on peut se contenter de stocker une longueur sur 16 bits, alors que sur une plateforme 64 bits on va avoir besoin de 64 bits...Godzil (./16) :
oula, c'est meme pire... char n'a meme pas une taille fixe... "il doit permetre de stoquer les caracteres"
bref en gros une machine qui permet d'avoir que 64 caracteres pourrait avoir un char 6bits
je crois pas, en principe ils font 8 bits minimum ^^
Their implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign.
— number of bits for smallest object that is not a bit-field (byte)
CHAR_BIT 8
— minimum value for an object of type signed char
SCHAR_MIN -127 // -(2^7-1)
— maximum value for an object of type signed char
SCHAR_MAX +127 // 2^7-1
— maximum value for an object of type unsigned char
UCHAR_MAX 255 // 2^8-1
— minimum value for an object of type char
CHAR_MIN see below
— maximum value for an object of type char
CHAR_MAX see below
... et etc pour les short, les long ...
char: un seul octet, pouvant contenir un caractère du jeu de caractères de la machine utilisé.
[...]
Ainsi, par exemple, si les chars sont représenté sur 8 bits, les variables de type unsigned char peuvent prendre les valeurs de 0 à 255...
Les objets déclaré comme caractères (char) sont assez grand pour mémoriser n'importe quel élément du jeu de caractère d'éxécution. Si l'on stocke réellement un caractère de ce jeu dans un objet de type char, sa valeur est celle de l'entier qui code ce caractère, et elle est positive ou nulle. On peut stocker d'autres quantités dans des variables de type char, mais c'est l'implémentation qui détermine quelles sont les valeurs possibles, et surtout le fait que ces valeurs soit signées ou non.
byte: addressable unit of data storage large enough to hold any member of the basic character set of the execution environment