Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2601 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

[C++] Peut-on faire ça avec for?

n°172559
Hercule
Posté le 07-07-2002 à 18:36:14  profilanswer
 

Reprise du message précédent :
http://www.eastcoastgames.com/cpp/chapter2.html
 
a+


---------------
Ils veulent la jouer hard, on va la jouer hard  
mood
Publicité
Posté le 07-07-2002 à 18:36:14  profilanswer
 

n°172563
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-07-2002 à 18:53:15  profilanswer
 
n°172564
zion
Plop
Posté le 07-07-2002 à 18:54:04  profilanswer
 

"C'est dans la norme ansi qu'il dise que les bool  
peuvent être stocké dans un bitset, c'est pas moi. "
 
printf("%d",sizeof(bool));


---------------
Informaticien.be - Lancez des défis à vos amis
n°172567
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-07-2002 à 18:55:59  profilanswer
 

vu que sizeof te rend la taille sous forme d'entier et en octets, si ça fait 1 bit il renvoie 0 ? :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°172572
zion
Plop
Posté le 07-07-2002 à 19:00:18  profilanswer
 

antp a écrit a écrit :

vu que sizeof te rend la taille sous forme d'entier et en octets, si ça fait 1 bit il renvoie 0 ? :D




 
Mince, mais sizeof est foireux alors?  :ouch:  
Et push pour l'assembleur intel? Ils se sont trompés?
C'est minimum 1 byte...
Mais qu'ils sont cons chez Intel!  :sarcastic:  
 
Doit y avoir qu'un seul mec qui a tout compris d'ailleurs, quel homme :love:


---------------
Informaticien.be - Lancez des défis à vos amis
n°172573
verdoux
And I'm still waiting
Posté le 07-07-2002 à 19:23:20  profilanswer
 

Y a vector<bool> qui doit être optimisé en taille.

n°172574
Hercule
Posté le 07-07-2002 à 19:24:36  profilanswer
 

sizeof donne la taille que le compilo utilise, c'est pas la norme ansi ..
fait le sur int sous unix, window ou beos..
et tu vas surement avoir des résultats différents.
fait sizeof(bool) sous visual c++ 4 et visual c++6, ca va pas te donner la même chose..
Ce qui est dit dans la norme c'est pas pareil que ce que fait visual.
 
>Et push pour l'assembleur intel? Ils se sont trompés?  
>C'est minimum 1 byte...  
>Mais qu'ils sont cons chez Intel!  :sarcastic:  
 
J'ai pas dit le contraire (peut être pour quelqu'un qui sais pas lire mais bon)??
 
bon url merci pour les arguments supplémentaires!!:
 
http://msdn.microsoft.com/library/ [...] _types.asp
Je vois ecrit :
>Microsoft Specific
>The following table lists the amount of storage required for fundamental types in Microsoft C++.  
 
ou pour bool
>Its size is unspecified.
c'est pas un octet, à bon, c'est pas comme un char ???
 
fait vector<bool> tu vas voir s'il stock tout sur des octets ..
 
mais bon je sais pas lire...
 
Mon propos de départ c'était qu'un bool doit être stocké conceptuellement sur un bit et donc si on le cast en entier c'est 0 ou 1.
Et j'ai vérifié c'est bien normalisé et vérifié sous gcc et visual c++.
 
 
 


---------------
Ils veulent la jouer hard, on va la jouer hard  
n°172576
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-07-2002 à 19:37:13  profilanswer
 

bhen t'avais mal exprimé ton propos de départ alors...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°172577
[SDF]Poire
Vive Grumly
Posté le 07-07-2002 à 20:07:15  profilanswer
 

Hercule a écrit a écrit :

c'était ironique...
 
Dans la norme true c'est bien 1 en entier, et 0 pour false.




Dans la norme ANSI beh tu vas me le trouver ça....
(de + si on respectais la norme ANSI on ferait pas grand chose... et il y en a plusieurs versions....)
electriquement parlant (au nivo du signal mon chou) on dit que le signal est à 0 (ou false) quand il passe 0V et tout le reste C du temps C true...
C tout le temps comme ça donc je pense pas que ds l'ANSI C différent... j'attend pour voir.
 
quand à :
[citation]
* A boolean value can be either 1 or 0.  bool is the smallest data type, representing one bit in memory
[/citation]
tu m'expliqueras comment il stock un seul bit en mémoire sans perte de place.... (registre de 1 bit ? comme disait Zion)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°172579
[SDF]Poire
Vive Grumly
Posté le 07-07-2002 à 20:20:11  profilanswer
 

Hercule a écrit a écrit :

en c++ le compilo le stock sur 1 bit. Sur un octet tu stock 8 boolean,  c'est l'avantage du type booleen du c++ sur le c.




Au fait en C norme ANSI y a pas de type boolean
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
mood
Publicité
Posté le 07-07-2002 à 20:20:11  profilanswer
 

n°172653
bjone
Insert booze to continue
Posté le 08-07-2002 à 00:46:56  profilanswer
 

sinon sur l'itanium, tu as 64 registres booléens (les branchement conditionnels fonctionnent par des registres de predication, il n y'a plus de "flags" conventionnels), et le type booleen des languages est alors exploité par le compilo....


Message édité par bjone le 08-07-2002 à 00:47:55
n°172660
LeGreg
Posté le 08-07-2002 à 02:05:16  profilanswer
 

rien a voir mais
sinon la constante true
c'est (-1),
la variable qui vaut true tout le temps
contrairement a la variable qui vaut true
au temps t=0 et false le reste du temps,  
qui elle represente (1)..
 
D'ailleurs si on ajoute (-1) et (1)
on trouve bien zero.
 
mais je m'egare..
 
LeGreg

n°172663
Musaran
Cerveaulté
Posté le 08-07-2002 à 02:46:19  profilanswer
 

La taille d'un "bool" n'est pas spécifiée par le standard C++.
Pour des raisons d'efficacité et d'adressage individuel, on n'utilise pas plus petit q'un octet.
 
Il est également dit que "vector<bool>" peut être optimisé pour stocker sur 1 bit.
 
Et non, il ne faut pas aditionner bool et int, car la valeur de true n'est pas garantie. Elle être -1.
 
legregExplique-toi mieux, j'ai rien pigé.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°172675
Hercule
Posté le 08-07-2002 à 07:13:57  profilanswer
 

quand je fait:
 
bool p=10;
printf("%d %d %d %d\n",true,-1,10==10,p);
 
et ca fait pareil sur silicon graphic à l'époque ou j'avais essayé.
 
ca ecrit "1 -1 1 1"
et pas "-1 -1 -1 10"
mais visual ne doit pas savoir correctement la valeur de true apparement
vous les connaissez bien mieux que lui ...
 
En C norme ANSI il n'y a pas de bool.
 
bool est spécifié par le c++, c'est un des changements,
et elle a été faite dand le but de pouvoir réaliser  
une optimisation et de la stocker sur 1 bit, je sais plus ou je l'ai lu mais je l'ai pas inventé.
 
Le cast de true en 1 est marqué dans les draft de la norme ansi du c++, si elle est appliqué ou non dans tous les compilo, ca je sais pas.


---------------
Ils veulent la jouer hard, on va la jouer hard  
n°172713
antp
Super Administrateur
Champion des excuses bidons
Posté le 08-07-2002 à 09:57:04  profilanswer
 

Hercule a écrit a écrit :

 
En C norme ANSI il n'y a pas de bool.




 
depuis 1999 il y en a un :p


Message édité par antp le 08-07-2002 à 09:57:41

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°172728
[SDF]Poire
Vive Grumly
Posté le 08-07-2002 à 10:32:25  profilanswer
 

Hercule a écrit a écrit :

 
Le cast de true en 1 est marqué dans les draft de la norme ansi du c++, si elle est appliqué ou non dans tous les compilo, ca je sais pas.
 




le cast oui
le cast de true donne 1 et le cast de false 0
mais C un cast !!!
C pas pour ça que true = 1 et false = 0 C pas vrai ça !!!
true <> 0 et false = 0 ça C vrai !!!
Donc ton define C nimporte nawak
 
moi j'attend tjs de voir ta norme ANSI


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°172764
Hercule
Posté le 08-07-2002 à 11:17:34  profilanswer
 

"C pas pour ça que true = 1 et false = 0 C pas vrai ça  
true <> 0 et false = 0 ça C vrai "
c'est faux aussi dans ce cas!!
false n'est pas egal à 0, le cast en entier de false est égal à 0.
false n'est égale qu'à false.
 
Le cast de 0 en booleen donne false
Le cast d'un entier différent de 0 donne true, et c'est tout !!
 
On est passé au c++ mon coco, c'est plus comme il y a 10 ans...
 
Le bool est un  type à part entiére, c'est pas un octet,
c'est pas un entier, c'est un bool, point final.
 
avec mes #define .., si tu sais bien ecrire tes expressions, ca va très bien marcher en c.
C'était un exemple pas très élégant mais il y a 6 ans c'est comme que je faisais
 
essaie avec ca:
bool test=False;
if (test) ...
 
bool funtionTest()
{
return(true)
}
 
bool caca=(truc==machin);
if (caca)
--
 
évidement il faut eviter if (caca==true)
et ecrire au pire
if (caca!=false)
 
ca doit être plus efficace à l'execution que ca non ?
#define  FALSE   0  
#define  TRUE   (!FALSE)
 
à moins que le compilo le réarrange à sa sauce (la même que la mienne)
 
J'arrête d'argumenter sur un sujet aussi con qu'un bool,  
c'est pas le peine avec cette mauvaise foi ...
 
 


---------------
Ils veulent la jouer hard, on va la jouer hard  
n°172791
[SDF]Poire
Vive Grumly
Posté le 08-07-2002 à 11:55:47  profilanswer
 

Hercule a écrit a écrit :

"C pas pour ça que true = 1 et false = 0 C pas vrai ça  
true <> 0 et false = 0 ça C vrai "
c'est faux aussi dans ce cas!!
false n'est pas egal à 0, le cast en entier de false est égal à 0.
false n'est égale qu'à false.
 
Le cast de 0 en booleen donne false
Le cast d'un entier différent de 0 donne true, et c'est tout !!
 
On est passé au c++ mon coco, c'est plus comme il y a 10 ans...
 
Le bool est un  type à part entiére, c'est pas un octet,
c'est pas un entier, c'est un bool, point final.
 
avec mes #define .., si tu sais bien ecrire tes expressions, ca va très bien marcher en c.
C'était un exemple pas très élégant mais il y a 6 ans c'est comme que je faisais
 
essaie avec ca:
bool test=False;
if (test) ...
 
bool funtionTest()
{
return(true)
}
 
bool caca=(truc==machin);
if (caca)
--
 
évidement il faut eviter if (caca==true)
et ecrire au pire
if (caca!=false)
 
ca doit être plus efficace à l'execution que ca non ?
#define  FALSE   0  
#define  TRUE   (!FALSE)
 
à moins que le compilo le réarrange à sa sauce (la même que la mienne)
 
J'arrête d'argumenter sur un sujet aussi con qu'un bool,  
c'est pas le peine avec cette mauvaise foi ...
 
 
 




C moi qui suis de mauvaise fois ???
(j'attend tjs la norme ANSI au fait.... pas celle du C je l'ai déjà...)
 
Au fait le C++ date des années 80 ça fait donc + de 20 ans  :p  
tu me diras comment tu stock ton bool sans perte de place aussi...
Il va me faire réinstaller un compilo C++ ce con....


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°172794
Hercule
Posté le 08-07-2002 à 12:06:08  profilanswer
 

"tu me diras comment tu stock ton bool sans perte de place aussi"
j'ai jamais dit ca abruti.
 
http://www.comnets.rwth-aachen.de/doc/c++std/conv.html
 
a++ les blairouse..
 


---------------
Ils veulent la jouer hard, on va la jouer hard  
n°172812
antp
Super Administrateur
Champion des excuses bidons
Posté le 08-07-2002 à 12:13:41  profilanswer
 

faudrait faire un résumé simple, parce que là je sais plus qui dit quoi.
Moi ce que je disais c'est que dans certains cas ça peut être dangereux d'ajouter un bool à un entier (même si la norme dit que la conversion doit donner 1 pour true, on est souvent loins de la norme) et qu'un bool ça prend 1 octet sur x86.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°172849
[SDF]Poire
Vive Grumly
Posté le 08-07-2002 à 13:07:13  profilanswer
 

Hercule a écrit a écrit :

"tu me diras comment tu stock ton bool sans perte de place aussi"
j'ai jamais dit ca abruti.
 
http://www.comnets.rwth-aachen.de/doc/c++std/conv.html
 
a++ les blairouse..
 
 




[citation]
4.12  Boolean conversions                                  [conv.bool]
 
1 An rvalue of arithmetic, enumeration, pointer, or  pointer  to  member
  type  can  be converted to an rvalue of type bool.  A zero value, null
  pointer value, or null member pointer value is converted to false; any
  other value is converted to true.
[/citation]
ça vient de ton link.... fo apprendre à lire...
ds un test si tu fais
if (15) printf("vrai\n" );
beh ça affichera vrai (qq'1 peut tester ? même en se mettant en norme ANSI)
 
et je vois nul part écrit que un bool est stocké sur un bit...
et tu dis qu'on peut pas stocké ton bool sans perte de place ya pas un peu une contradiction dans ce que tu racontes ?  
Alors l'abruti il t'emmerde  :fuck:


Message édité par [SDF]Poire le 08-07-2002 à 13:08:09

---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°172910
smaragdus
whores, drugs & J.S. Bach
Posté le 08-07-2002 à 15:03:08  profilanswer
 

Je ne vois pas comment on pourrait stocker un bool unique sur un bit vu qu'une adresse mémoire pointe forcément sur un octet. C'est tellement élémentaire que la simple logique permet de répondre à ce problème.
 
Après pour des ensembles de boolean : ça s'optimise mais c'est un autre problème.

n°172935
zion
Plop
Posté le 08-07-2002 à 15:39:29  profilanswer
 

Smaragdus a écrit a écrit :

Je ne vois pas comment on pourrait stocker un bool unique sur un bit vu qu'une adresse mémoire pointe forcément sur un octet. C'est tellement élémentaire que la simple logique permet de répondre à ce problème.
 
Après pour des ensembles de boolean : ça s'optimise mais c'est un autre problème.




 
On l'a juste dis 40 millions de fois dans le vide...
C'est cool de répondre sans lire tout le topic  :kaola:


---------------
Informaticien.be - Lancez des défis à vos amis
n°172943
smaragdus
whores, drugs & J.S. Bach
Posté le 08-07-2002 à 15:50:16  profilanswer
 

Zion a écrit a écrit :

 
 
On l'a juste dis 40 millions de fois dans le vide...
C'est cool de répondre sans lire tout le topic  :kaola:  




 
Désolé mais tout ce que j'ai parcouru : c'étaient des batailles à coup de norme ANSI

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : [C++] Peut-on faire ça avec for?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)