Bonjour,
Suite à mon post sur la recherche d'un livre d'algorithmie [1], j'ai acheté Algorithmes en langage c [2] de Robert Sedgewick [3].
Le livre est très bien et assez simple d'accès, par contre, je ne trouve pas les corrigés des exercices.
Sinon, ma question:
Je veut representer un chiffre (0,1,2,3,4,5,6,7,8,9)
Quel type est le plus adapté, pour l'instant j'utilise des int, mais n'est ce pas une depense de memoire inutile?
Bonne journée,
Julien
[1] http://linuxfr.org/forums/19/2571.html(...)
[2] http://www.eyrolles.com/Informatique/Livre/9782100053315/livre-algo(...)
[3] http://www.cs.princeton.edu/~rs/(...)
# En Java ?
Posté par Zorro (site web personnel) . Évalué à 2.
[^] # Re: En Java ?
Posté par Juke (site web personnel) . Évalué à 2.
Je te remercie mais en fait, le java... je sais pas trop, j'en ai fait un peu (pour aborder l'objet), ça à l'air bien, tout à l'air simple, mais ça ne me plait pas.
Les exercices sont en java ou dans un pseudo langage ?
# unsigned short
Posté par Sebastien . Évalué à 1.
unsigned short chiffre = 0;
le type qui se rapproche le plus de la definition d'un chiffre ([0;9]).
Ensuite, au niveau de la depense de memoire :
Type__________________________Size
bool..........................................................1 byte
char, unsigned char, signed char....1 byte
short, unsigned short...........................2 bytes
int, unsigned int....................................4 bytes
long, unsigned long.............................4 bytes
float..........................................................4 bytes
double.....................................................8 bytes
[^] # Re: unsigned short
Posté par Krunch (site web personnel) . Évalué à 3.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: unsigned short
Posté par Sebastien . Évalué à 1.
Et puis, est-ce qu'il faut aussi gerer le fait que 9+1 n'est plus un chiffre mais un nombre ?
Bref... Faut faire attention :)
[^] # Re: unsigned short
Posté par Sebastien . Évalué à 1.
[^] # Re: unsigned short
Posté par Krunch (site web personnel) . Évalué à 4.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: unsigned short
Posté par scand1sk (site web personnel) . Évalué à 1.
Cherchez l'erreur...
[^] # L'erreur
Posté par EdB . Évalué à 1.
[^] # Re: L'erreur
Posté par Matthieu Weber . Évalué à 3.
[^] # Re: unsigned short
Posté par moyan . Évalué à 0.
for (unsigned char i = 0 ; i < 255 ; i++) {
printf("%u", i) ;
}
[^] # Re: unsigned short
Posté par scand1sk (site web personnel) . Évalué à 2.
qui boucle infiniment puisque une fois i arrivé à 255, il est incrémenté, et comme le unsigned char est limité à 255, i revient à 0, et la condition d'arrêt n'est pas vérifiée.
[^] # Re: unsigned short
Posté par gawal . Évalué à 3.
Sinon, la plupart du temps, le compilateur arrivera a se debrouiller de maniere a ce que ton chiffre ne passe pas par la memoire et reste au niveau registre. A ce moment, mettre int marche tout aussi bien. Je conseillerai donc l'usage de int la plupart du temps et d'autre type seulement si tu les employes en grande quantites (typiquement un tableau d'entiers).
Derniere chose, les valeurs precedentes sont justes la plupart du temps (x86) mais apres ca depend des processeurs et pas seulement de leur caractere 32/64 bits.
[^] # Re: unsigned short
Posté par CoinKoin . Évalué à 2.
[^] # Re: unsigned short
Posté par Sebastien . Évalué à 1.
[^] # Re: unsigned short
Posté par Krunch (site web personnel) . Évalué à 2.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: unsigned short
Posté par Christophe Fergeau . Évalué à 2.
[^] # Re: unsigned short
Posté par Sylvain Rampacek (site web personnel) . Évalué à 2.
[^] # Re: unsigned short
Posté par gawal . Évalué à 2.
[^] # Re: unsigned short
Posté par gc (site web personnel) . Évalué à 2.
parce que tout ce dont tu parles c'est sur x86, ce n'est pas du tout assuré d'être le cas sur d'autres architectures.
si tu veux vraiment un entier non signé sur 32 bit il faut utiliser "uint32" (il me semble, je n'ai pas retrouvé la norme précise).
si tu veux manipuler le type entier "naturel" pour le processeur, utilise "int" ou "unsigned int". ce sera 32 bit sur un x86, 64 bit sur un amd64... mais surtout ce sera quelque chose que le processeur manipule rapidement et efficacement.
[^] # Re: unsigned short
Posté par Krunch (site web personnel) . Évalué à 2.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: unsigned short
Posté par Nicolas Boulay (site web personnel) . Évalué à 1.
"La première sécurité est la liberté"
[^] # Re: unsigned short
Posté par ghostX . Évalué à 1.
je crois plutot que un
- int egal 2 octet donc 16 bit
-un type char 1 octet donc 8 bit
pour le reste je n' ai pas la correspondance ne tete.
Me faire signe si je me gourre.
Je planche justement sur la manipulation des bite donc si j'ai faut c'est grave pour moi !
pour des petits chiffre qui ne depasent pas 15 tu peut coder sur 4 bit
1111 = 15
# Alignement
Posté par EdB . Évalué à 7.
# Y a pas assez de trolls Ada, ici
Posté par scand1sk (site web personnel) . Évalué à 2.
Ou alors tu codes en Ada et tu laisses le compilo se demerder avec un
subtype CHIFFRE is NATURAL range 0..9
Et prépare toi à te faire insulter quand tu voudras afficher un chiffre avec le "print" des flottants.
[/troll]
[^] # Re: Y a pas assez de trolls Ada, ici
Posté par coucou747 . Évalué à -1.
unsigned char a, b, c[1000];
//c'est dans c[1000] qui tu placeras tes chiffres
//tu y accède comme ceci :
a=c[i]%10;
b=(c[i]-a)/10;
//et tu affiches a et b mais tes nombres seront stoiqués dans c[]
//et pour enregistrer, c'est :
c[i]=a+b*10;
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.