Posté le 17/09/2012 18:29
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 310 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 17/09/2012 18:33 | #
normalement, (je ne maîtrise pas le C++) un booléen est écrit sur 1 bit
Citer : Posté le 17/09/2012 18:35 | #
un octet est égal a combien de bit? (ne vous inquiété pas, j'irai me flagellé sur la place publique)
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 17/09/2012 18:40 | #
1 octet = 8 bits
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 17/09/2012 18:41 | #
ok merci. et quelle place prend un fichier de sauvegarde vide?
PS: WTF is that smiley
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 17/09/2012 18:49 | #
(ne vous inquiété pas, j'irai me flagellé sur la place publique)
Ben quoi ?
Citer : Posté le 17/09/2012 21:25 | #
C'est simple :
-un bit = 0 ou 1 (2 possibilités)
-huit bits = un octet = un nombre compris entre 00000000 et 11111111 (256 possibilités)
Après tout en découle.
Au pire tu fais sizeof(bool).
Citer : Posté le 17/09/2012 21:29 | #
Euh non pour moi, la taille minimale de n'importe quelle variable est de un octet(=1byte=8bits). Ce qui fait que un booléen "pèse" autant qu'un char(qui lui vaut aussi un octet)
Ca change pas si tu lui donne un bool ca vaudra aussi un octet
Bah d'après ce que je viens de dire, si je me trompe pas les deux pèsent autant donc après tu lui donne un tableau de char et tu met 1 ou 0 et ca te fait un booléen. En plus ca va te prendre plus de temps a écrire les deux fichier et a les lire vu qu'il y en a 2. Après tu peut réfléchir, pour vraiment économiser la place, tu peut essayer de stocker plusieurs booléen en un char puisque tu a 256 (en unsigned) possiblité. Par exemple :
- 0 : toutes les option sont fausse
- 1 : option 1 est vrai option 2 est fausse
- 2 : option 1 est vrai option 2 est vrai
- 3 : option 1 et 2 sont vrai
Enfin t'a compris, normalement on devrait même pouvoir faire mieux je crois en utilisant directement les bit(ca permettrait donc de stocker 8 bool en un char), mais je sais pas faire
Aucune idée, ca doit dépendre du systeme de fichier de la calculatrice et je n'ai jamais vraiment rechercher.
Par contre, je suis pas sur de ce que j'avance mais bon j'ai de grande raisons de le croire
Citer : Posté le 17/09/2012 21:30 | #
ben oui , mais est-ce la peine de faire deux fichiers de sauvegarde (1 de 10 char et 1 de 10 bool ?) ou est-ce que cela prendra plus de place?
PS @ louloux : sizeof (bool) me renvoye 4, alors que sizeof (char ) me renvoye... 1 !
a mon avis, sizeof renvoye sur le nombre d'octet...
EDIT : deso ziqumu ,j'avais pas vu ton message...
je vais finalement faire un seul fichier de sauvegarde, de toute facon je n'ai pas trop a stocker... (et j'en perdrais en taille de code donc finalement cela serai plus lourd...)
Un grand merci en tout cas pour ces reponses et pour cette flagelation
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 17/09/2012 21:32 | #
pour moi, la taille minimale de n'importe quelle variable est de un octet(=1byte=8bits). Ce qui fait que un booléen "pèse" autant qu'un char(qui lui vaut aussi un octet)
et quelle place prend un fichier de sauvegarde vide?
Citer : Posté le 18/09/2012 01:04 | #
2 fichiers de sauvegarde pour gagner de la place ?
Je vois pas bien en quoi ça pourrait gagner de la place. Si tu casses un truc en deux, l'ensemble n'est jamais moins volumineux.
Tes booléens, tu les stockes dans un entier et c'est vite fait, comme avec un système de flags :
#define FLAG2 0x00000002
#define FLAG3 0x00000004
#define FLAG4 0x00000008
#define FLAG5 0x00000010
...
#define FLAG10 0x00000200
int flags=0;
// écrire dans l'entier
if( bool1 ) flags |= FLAG1;
//lire dans l'entier
if( flags & FLAG1 ) bool1 = true;
Après, si tu utilises plutôt un tableau de booléens, c'est encore plus simple, même pas besoin de déclarer des constantes :
for(int i=0 ; i<10 ; i++) flags |= boolArray[ i ]<<i;
//lecture :
for(int i=0 ; i<10 ; i++) boolArray[ i ] = flags & (1<<i);
Pour revenir au sizeof(bool), sur la plupart des systèmes ça vaut 1, l'octet étant la plus petite unité adressable. Avec le SDK effectivement ça vaut 4, un peu surprenant, mais après tout pour un tableau de 10 variable, ça n'a aucune importance.
Citer : Posté le 18/09/2012 19:14 | #
4 octets ? WTF ?
Ils mettent quoi dedans ?
Citer : Posté le 18/09/2012 19:54 | #
C'est vrai que c'est bizare, c'est peut être un bug de sizeof.. Si c'est pas un bug, autant stoquer le booléen dans un char c'est plus rentable.
Citer : Posté le 18/09/2012 20:30 | #
Non, il est préférable de privilégier la sémantique dans le code. Si ta variable est un booléen, il faut utiliser le type bool. Si tu utilises un entier qui représente une quantité, il faut utiliser int, même si ton entier ne dépassera jamais 10 et qu'il tiendrait dans un char. Un char, c'est un caractère, ou une donnée non-quantitative sur un octet.
Il est illogique de sacrifier la lisibilité du code pour 3 octets, je vous rappelle que la puce RAM fait 512ko.
De plus, dans la plupart des cas votre variable ne sera jamais stockée en RAM, elle restera dans un registre pendant toute sa durée de vie.
Evidemment, on peut déroger à cette règle lorsqu'on parle d'un tableau de milliers d'éléments.
Citer : Posté le 18/09/2012 20:56 | #
Pourquoi utiliser un marteau-pilon pour casser une noisette ?
Le code est aussi lisible, que tu codes une map en char ou en int, sauf qu'une map en int coûte 512 octets, contre 128 pour une map en char.
Citer : Posté le 18/09/2012 23:20 | #
Je suis d'accord avec Louloux. Sur un ordi, je comprend parfaitement que l'on peut utiliser des int à tout va, il y a beaucoup de place.
Par contre, sur une calto, la mémoire est vite remplie si l'on utilise trop d'int. (mais bon, tout est relatif...)