A voir également:
- Pour être traitée par un ordinateur, l'information est codée avec un codage binaire (0 ou 1). elle occupe une certaine quantité d'espace mémoire mesurée en nombre de bits. voici deux façons de coder des lettres avec un codage binaire. le code 1 utilise 8 bits par lettre. le code 2 utilise moins de bits.
- Code ascii - Guide
- Winrar 64 bits - Télécharger - Compression & Décompression
- 32 bits - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code binaire : principe, codage, règles, symboles - Guide
1 réponse
Bonjour,
Le problème des conversions de bases est le plus anti-pédagogique que je connaisse, heureusement on ne l'a qu'à l'école.
Il y a deux concepts importants à trouver ici, quel seront les types des données et quels seront les algorithmes de conversion.
Le premier est le plus difficile à deviner. On peut à partir d'une séquence de 'chiffres' dans une base en entrée trouver le nombre correspondant, ou à partir d'un nombre trouver la séquence de chiffres qui lui correspond dans une base destination. Un unsigned par exemple est un nombre, il est ce qu'il est, on peut décider de le représenter dans une base donnée, il sera alors vu sous la forme d'une séquence de caractères.
On devrait pouvoir créer les fonctions :
L'intêret d'utiliser une séquence de caractère est que pour la saisir ou l'afficher, il n'y a qu'un code minimal.
Le cas de la base 16 est le plus difficile, mais si l'utiliser est autorisé, c'est aussi celui que la bibliothèque connait déjà, les fonctions de conversions s'écrivent en une simple utilisation de
Tu peux essayer cette piste ou d'autres, n'hésite pas à poster tes essais
Dalfab
Le problème des conversions de bases est le plus anti-pédagogique que je connaisse, heureusement on ne l'a qu'à l'école.
Il y a deux concepts importants à trouver ici, quel seront les types des données et quels seront les algorithmes de conversion.
Le premier est le plus difficile à deviner. On peut à partir d'une séquence de 'chiffres' dans une base en entrée trouver le nombre correspondant, ou à partir d'un nombre trouver la séquence de chiffres qui lui correspond dans une base destination. Un unsigned par exemple est un nombre, il est ce qu'il est, on peut décider de le représenter dans une base donnée, il sera alors vu sous la forme d'une séquence de caractères.
On devrait pouvoir créer les fonctions :
unsigned int convertirSeqBase2VersNb( const char seq[] ); void convertirNbVersSeqBase8( unsigned int nbr , char seq[] );On peut aussi peut-être se passer du nombre intermédiaire avec :
void convertirSeqBaseVersSeqBase( const char seqIn[] , unsigned baseIn, unsigned baseOut, char seqOut[] );
L'intêret d'utiliser une séquence de caractère est que pour la saisir ou l'afficher, il n'y a qu'un code minimal.
char seqIn[33]; char seqOut[33]; printf( "entrer la sequence a convertir" ); scanf( "%32s" , seqIn ); unsigned nbr = convertirSeqBase2VersNb( seqIn ); convertirNbVersSeqBase8( nbr , seqOut ); printf( "sequence convertie : %s\n" , seqOut );Les fonctions de conversion devront gérer des transformations caractère<=>chiffre en plus du travail sur la base.
Le cas de la base 16 est le plus difficile, mais si l'utiliser est autorisé, c'est aussi celui que la bibliothèque connait déjà, les fonctions de conversions s'écrivent en une simple utilisation de
sscanf(seqIn,"%x",&nbr)et
sprintf(seqOut,"%x",nbr);.
Tu peux essayer cette piste ou d'autres, n'hésite pas à poster tes essais
Dalfab