uxtobirza
Messages postés16Date d'inscriptiondimanche 2 février 2003StatutMembreDernière intervention 3 juin 2008 3 oct. 2008 à 16:25
L'ascii est codé sur 7 bits, et 2^7 =128
Cela signifie qu'au delà de 127, ce n'est plus de l'ascii.
Cela va dépendre
1 du système d'exploitation (pas forcément de l'ascii)
2 des pages de codes (en fonction de la langue du système d'exploitation)
Tout ça pour dire qu'au delà de 127 on n'a aucune garantie de portabilité
de la liste des caractères.
MarioFrost666
Messages postés2Date d'inscriptionvendredi 12 octobre 2007StatutMembreDernière intervention12 octobre 2007 12 oct. 2007 à 18:59
Et une version pour les amateurs de binaire...
void main(void)
{
char s[9]; s[8] = 0;
for(int i = 0; i < 256; ++i)
{
for(int k = 0; k < 8; s[k]=(((i&(1<<(7-k)))?1:0)+'0'), ++k);
printf("%c[0x%02X][%03d][%s][%c]",
((!(i%3))?'\n':' '),
i,
(unsigned int)i,
s,
((i>=32)? (char)i: ' '));
}
getch();
}
MarioFrost666
Messages postés2Date d'inscriptionvendredi 12 octobre 2007StatutMembreDernière intervention12 octobre 2007 12 oct. 2007 à 18:45
Salut les amis,
je vous propose une version un peu plus courte qui fourni le code hexa, décimal et affiche le caractère de la table ascii étendu:
#include <stdio.h>
#include <conio.h>
void main(void)
{
for(int i = 0; i < 256; ++i)
printf("%c[0x%02X][%03d][%c] ",
((!(i%4))?'\n':' '),
i,
(unsigned int)i,
((i>=32)? (char)i: ' '));
getch();
}
voilà!
phantom83
Messages postés1Date d'inscriptionmercredi 5 mars 2003StatutMembreDernière intervention16 mai 2005 16 mai 2005 à 12:43
Franchement merci trop util pour le codage de donnée juste un peut long ;) mais c'est vrai que c'est la seul technique que j'ai trouvé qui fonctionnée pour le moment
merci encore
mage_des_enfers
Messages postés24Date d'inscriptionvendredi 18 juin 2004StatutMembreDernière intervention25 octobre 2004 3 oct. 2004 à 13:32
Moi comme je ne pouvais pas remonter, j'ai mis un getch() à la fin de la boucle while (a<256), mais je dois toujours appuyer sur une touche pour descendre. Enfin je reste appuyé mais au moins je peux tout voir ...
D1m3x
Messages postés402Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention21 juillet 20051 5 mars 2003 à 18:48
le gros pb , c'est que on c po remonter ds une console, ou bien? en tt cas chez moi ca va po
cs_chavez
Messages postés7Date d'inscriptiondimanche 1 décembre 2002StatutMembreDernière intervention25 juin 2003 24 déc. 2002 à 19:32
Voila un programme qui va mettre bien utile!
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 26 oct. 2002 à 14:01
Outch, moi je pensais qu'il suffisait de faire int i; char j; puis dans une boucle: char j = i; cout j; arf, g t loin du compte!! paske, si ça marchait pour les caractères normaux comme les lettres, ça foirait total pour le reste! merci ;)
3 oct. 2008 à 16:25
Cela signifie qu'au delà de 127, ce n'est plus de l'ascii.
Cela va dépendre
1 du système d'exploitation (pas forcément de l'ascii)
2 des pages de codes (en fonction de la langue du système d'exploitation)
Tout ça pour dire qu'au delà de 127 on n'a aucune garantie de portabilité
de la liste des caractères.
12 oct. 2007 à 18:59
void main(void)
{
char s[9]; s[8] = 0;
for(int i = 0; i < 256; ++i)
{
for(int k = 0; k < 8; s[k]=(((i&(1<<(7-k)))?1:0)+'0'), ++k);
printf("%c[0x%02X][%03d][%s][%c]",
((!(i%3))?'\n':' '),
i,
(unsigned int)i,
s,
((i>=32)? (char)i: ' '));
}
getch();
}
12 oct. 2007 à 18:45
je vous propose une version un peu plus courte qui fourni le code hexa, décimal et affiche le caractère de la table ascii étendu:
#include <stdio.h>
#include <conio.h>
void main(void)
{
for(int i = 0; i < 256; ++i)
printf("%c[0x%02X][%03d][%c] ",
((!(i%4))?'\n':' '),
i,
(unsigned int)i,
((i>=32)? (char)i: ' '));
getch();
}
voilà!
16 mai 2005 à 12:43
merci encore
3 oct. 2004 à 13:32
5 mars 2003 à 18:48
24 déc. 2002 à 19:32
26 oct. 2002 à 14:01