valeur octal d'un caractere

valeur octal d'un caractere - C - Programmation

Marsh Posté le 10-12-2004 à 16:13:54    

Salut,
 
Pour gerer une option de printf (que je recode) je dois recupere les codes ascii des caracteres non imprimables ( < 32 et >= 127) et les representer par des \ suivi de la valeur en octal.
Seulement voila comment recup le code ascii d'un caractere non imprimable ? et le rapport avec l'octal pour afficher son code ? quoique je vois comment faire la conversion (putnbr_base).
 
Merci d'avance.


---------------
~ Msi z270 Gaming Pro Carbon | i7 7700K @4.8Ghz + Dark Rock Pro4 | 16Go Corsair DDR4 2400 | RTX 2080 Ti | OS SSD 840 + Jeux Raid0 SSD 850 + 2*2To Seagate | Cooler Master Cosmos 1000 + Corsair CMPSU-620HX
Reply

Marsh Posté le 10-12-2004 à 16:13:54   

Reply

Marsh Posté le 10-12-2004 à 16:54:09    

de la même facon que tu récupére le code ascii d'un caractérz imprimable
 
un char contient un code ascii (un nombre) apres tu peut l'interpréter comme tel ou l'afficher
 
char a = 'a';
printf("%d %c",a, a);
 
tu a juste a convertir ta variable en octal ce qui est pas trés compliqué !


Message édité par spokup le 10-12-2004 à 16:54:55
Reply

Marsh Posté le 10-12-2004 à 17:51:48    

Tonio94 a écrit :

Pour gerer une option de printf (que je recode) je dois recupere les codes ascii des caracteres non imprimables ( < 32 et >= 127) et les representer par des \ suivi de la valeur en octal.
Seulement voila comment recup le code ascii d'un caractere non imprimable ? et le rapport avec l'octal pour afficher son code ? quoique je vois comment faire la conversion (putnbr_base).


En C, un caractère est une valeur numérique comme une autre. Pas de conversion à faire.
 
Pour convertir en octal : Comme l'indique ton livre de C : *printf() avec "%o"


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 10-12-2004 à 23:26:32    

ben non justement pas printf avec %o puisque je suis cense recoder printf. Sinon merci j'ai reussi a m'en sortir et la j'essai de gerer le %u pour le "unsigned decimal"...


---------------
~ Msi z270 Gaming Pro Carbon | i7 7700K @4.8Ghz + Dark Rock Pro4 | 16Go Corsair DDR4 2400 | RTX 2080 Ti | OS SSD 840 + Jeux Raid0 SSD 850 + 2*2To Seagate | Cooler Master Cosmos 1000 + Corsair CMPSU-620HX
Reply

Marsh Posté le 11-12-2004 à 09:47:01    

Tonio94 a écrit :

ben non justement pas printf avec %o puisque je suis cense recoder printf. Sinon merci j'ai reussi a m'en sortir et la j'essai de gerer le %u pour le "unsigned decimal"...


Désolé, mal lu l'énoncé. Une conversion en octal consiste à utiliser les chiffres '0' à '7' pour coder la valeur binaire. Il suffit donc de grouper les bits par paquet de 3 en partant du LSB (le plus à droite) et de leur attribuer le caractère qui va bien.
 
Ici,  
 
http://mapage.noos.fr/emdel/clib.htm
Module ITOA
 
il y a des fonctions qui font ça pour l'héxadécimal. Ca ne devrait pas être trop dur d'en adapter une pour faire de l'octal...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 14-12-2004 à 17:41:10    

Merci bien :)


---------------
~ Msi z270 Gaming Pro Carbon | i7 7700K @4.8Ghz + Dark Rock Pro4 | 16Go Corsair DDR4 2400 | RTX 2080 Ti | OS SSD 840 + Jeux Raid0 SSD 850 + 2*2To Seagate | Cooler Master Cosmos 1000 + Corsair CMPSU-620HX
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed