Talus Blecryo
Messages postés3Date d'inscriptionsamedi 21 janvier 2006StatutMembreDernière intervention 3 janvier 2009
-
3 janv. 2009 à 13:49
niclouxs
Messages postés6Date d'inscriptionsamedi 3 janvier 2009StatutMembreDernière intervention 4 janvier 2009
-
3 janv. 2009 à 19:25
bonjour a tous
ça fais déjà un bout de temps que je parcours les forum et le source de CppFrance mais je n'avais pas encore poser de question et la j'en ai une
j'ai beau chercher mais je trouve de reponse qui aille a ma question alors la voila
j'aimerai definir a une varible (peut importe son type) une taille defini pour y stocker un nombre fixe de donnée
je m'explique par exemple initialiser un variable sur 32bits pour qu'elle ne puisse pas en stocker plus, ni moins
PS je supose que vous allez me demander a quoi ca vas me servir et bien j'anticipe votre question
j'ai mit au point un petit algo de cryptage utilisant des taille fixe de permutation mais mon probleme vient des variable jes ai pas encore comment faire pour leur donner une tailles
niclouxs
Messages postés6Date d'inscriptionsamedi 3 janvier 2009StatutMembreDernière intervention 4 janvier 2009 3 janv. 2009 à 19:25
Salut,
La taille en nombre de bits d'une variable dépend uniquement de son type et du fait que ce soit un array ou non (ca dépends aussi du compilateur que tu utilise pour compiler ton programme).
Une facon de savoir la taille qu'occupe ta variable en mémoire est d'utiliser la fonctione sizeof(tavariable), ca va te retourner la taille en Bytes (=8bits).
Par exemple, si tu as le code suivant:
char c;
int i;
char* p;
char Salut[] = "Salut!";
int SizeOfC = sizeof(c);
int SizeOfI = sizeof(i);
int SizeOfp = sizeof(p);
int SizeOfSalut = sizeof(Salut);
SizeOfC sera égale à 1 Bytes (donc 8 bits),
SizeOfI sera égale à 4 Bytes (donc 32 bits),
SizeOfp sera égale à 4 Bytes (donc 32 bits),SizeOfSalut sera égale à (6+1)*1 Bytes 7 Bytes (donc 7*8 56 bits). (le +1 est pour le caractere de fin de chaine "\0" qui est ajouté automatiquement)
Finalement, si tu veux une variable sur 32 bits independemment de son type, tu as plusieurs choix, dépendemment de ce que tu souhaite en faire:
unsigned char v[4];
char v[4];
int v;
La plupart du temps, un int est sur 32 bits, mais encore une fois, ca depends du compilateur utilisé...