Lorsque je lis la description de l'op=E9rateur bitwise AND (&) =E0 l'adre=
sse=20
http://msdn.microsoft.com/fr-fr/library/z0zec0b2.aspx
et que je cherche =E0 la mettre en =9Cuvre, j'en viens =E0 me demander si=
elle=20
est valable sous C#.
histoire de ne retenir que le bit utile dans la premi=E8re variable si=20
elle contenait aussi autre chose (=E0 supposer qu'on l'ait initialis=E9e =
diff=E9remment, mais chaque chose en son temps),
on me jette =E0 la troisi=E8me ligne en me disant
Error 1 Cannot implicitly convert type 'int' to 'ushort'. An explicit=20
conversion exists (are you missing a cast?)=09
(CS0266)
Alors c'est quoi, le "cast" que je "miss" ?
J'ai pourtant bien l'impression d'avoir tout d=E9clar=E9 en ushort (enfin=
du=20
moins les variables que je mentionne ici), o=F9 est-ce qu'on me trouve un=
=20
int ?
J'aurais laiss=E9 tomber un vilebrequin sur la route ?
Au d=E9part c'=E9tait un UInt16 que j'avais =E0 filtrer, et puis comme l'=
aide=20
de l'op=E9rateur "&" utilisait des ushort dans son exemple j'ai fait=20
l'op=E9ration avec des ushort histoire d'essayer d'y voir clair. Vi, ben =
=E7a sera pour le prochain =E9pisode.
Je pr=E9cise que j'ai utilis=E9 la commande Build / Rebuild solution, et =
que=20
j'ai obtenu la m=EAme erreur sur la m=EAme ligne.
Donc, si on a deux opérandes de même taille et un résultat de ta ille double, j'ai comme l'impression que l'explication serait à chercher du côté de l'implémentation, en l'occurrence sous csharp ?
Ou peut-être d'abord du côté du code MSIL sous-jacent ou de la sp éc du langage ? Pour l'instant, je n'ai pas encore trouvé ou ce point parti culier est documenté...
J'avoue que je ne me représentais pas, au départ, où allait nous am ener ma question. Bon, pour le moment, on va juste tâcher de se garder un neurone pour se rappeler qu'une combinaison bit à bit, en csharp, peut donner un résultat de taille différente des données de départ (et qu'en cas de doute on a des fonctions comme typename pour en avoir le cur net).
Et puis le jour où l'éclair jaillira sur l'explication, ça va bien finir par se savoir :)
Merci en tout cas d'avoir éclairé ma lanterne.
Patrice a écrit, le 23/11/2009 13:44 :
Donc, si on a deux opérandes de même taille et un résultat de ta ille
double, j'ai comme l'impression que l'explication serait à chercher du
côté de l'implémentation, en l'occurrence sous csharp ?
Ou peut-être d'abord du côté du code MSIL sous-jacent ou de la sp éc du
langage ? Pour l'instant, je n'ai pas encore trouvé ou ce point parti culier
est documenté...
J'avoue que je ne me représentais pas, au départ, où allait nous am ener
ma question.
Bon, pour le moment, on va juste tâcher de se garder un neurone pour se
rappeler qu'une combinaison bit à bit, en csharp, peut donner un
résultat de taille différente des données de départ (et qu'en cas de
doute on a des fonctions comme typename pour en avoir le cur net).
Et puis le jour où l'éclair jaillira sur l'explication, ça va bien finir
par se savoir :)
Donc, si on a deux opérandes de même taille et un résultat de ta ille double, j'ai comme l'impression que l'explication serait à chercher du côté de l'implémentation, en l'occurrence sous csharp ?
Ou peut-être d'abord du côté du code MSIL sous-jacent ou de la sp éc du langage ? Pour l'instant, je n'ai pas encore trouvé ou ce point parti culier est documenté...
J'avoue que je ne me représentais pas, au départ, où allait nous am ener ma question. Bon, pour le moment, on va juste tâcher de se garder un neurone pour se rappeler qu'une combinaison bit à bit, en csharp, peut donner un résultat de taille différente des données de départ (et qu'en cas de doute on a des fonctions comme typename pour en avoir le cur net).
Et puis le jour où l'éclair jaillira sur l'explication, ça va bien finir par se savoir :)
Merci en tout cas d'avoir éclairé ma lanterne.
Christophe Lephay
"Gloops" a écrit dans le message de groupe de discussion : #
Bon, pour le moment, on va juste tâcher de se garder un neurone pour se rappeler qu'une combinaison bit à bit, en csharp, peut donner un résultat de taille différente des données de départ (et qu'en cas de doute on a des fonctions comme typename pour en avoir le cœur net).
Et puis le jour où l'éclair jaillira sur l'explication, ça va bien finir par se savoir :)
Pour être plus précis dans la formulation, ce serait plutôt que les opérateurs bit à bit ne sont définis que pour les int, les ushort étant convertis implicitement en int lorsqu'on leur applique l'opérateur.
"Gloops" <gloops@invalid.zailes.org> a écrit dans le message de groupe de
discussion : #07yqRJbKHA.4688@TK2MSFTNGP06.phx.gbl...
Bon, pour le moment, on va juste tâcher de se garder un neurone pour se
rappeler qu'une combinaison bit à bit, en csharp, peut donner un résultat
de taille différente des données de départ (et qu'en cas de doute on a des
fonctions comme typename pour en avoir le cœur net).
Et puis le jour où l'éclair jaillira sur l'explication, ça va bien finir
par se savoir :)
Pour être plus précis dans la formulation, ce serait plutôt que les
opérateurs bit à bit ne sont définis que pour les int, les ushort étant
convertis implicitement en int lorsqu'on leur applique l'opérateur.
"Gloops" a écrit dans le message de groupe de discussion : #
Bon, pour le moment, on va juste tâcher de se garder un neurone pour se rappeler qu'une combinaison bit à bit, en csharp, peut donner un résultat de taille différente des données de départ (et qu'en cas de doute on a des fonctions comme typename pour en avoir le cœur net).
Et puis le jour où l'éclair jaillira sur l'explication, ça va bien finir par se savoir :)
Pour être plus précis dans la formulation, ce serait plutôt que les opérateurs bit à bit ne sont définis que pour les int, les ushort étant convertis implicitement en int lorsqu'on leur applique l'opérateur.
Gloops
Christophe Lephay a écrit, le 24/11/2009 06:23 :
Pour être plus précis dans la formulation, ce serait plutôt que l es opérateurs bit à bit ne sont définis que pour les int, les ushort étant convertis implicitement en int lorsqu'on leur applique l'opérateur.
J'ai l'impression que ça, ce n'est pas précisé ici http://msdn.microsoft.com/fr-fr/library/sbf85k1c%28VS.80%29.aspx
Il m'avait semblé avoir cité un document qui indiquait sur quels type s était défini l'opérateur, mais peut-être bien que c'était pour l'assembleur finalement (d'ailleurs c'est un peu logique, si j'avais trouvé une doc je l'aurais appliquée donc on n'aurait pas eu tout ç a à raconter).
Est-ce qu'on trouve une doc plus complète à ce sujet, que j'aurais ma l cherchée, ou c'est des trucs qu'il faut savoir, comme ça, en les ayan t acquis au hasard des lectures ?
Christophe Lephay a écrit, le 24/11/2009 06:23 :
Pour être plus précis dans la formulation, ce serait plutôt que l es
opérateurs bit à bit ne sont définis que pour les int, les ushort étant
convertis implicitement en int lorsqu'on leur applique l'opérateur.
J'ai l'impression que ça, ce n'est pas précisé ici
http://msdn.microsoft.com/fr-fr/library/sbf85k1c%28VS.80%29.aspx
Il m'avait semblé avoir cité un document qui indiquait sur quels type s
était défini l'opérateur, mais peut-être bien que c'était pour
l'assembleur finalement (d'ailleurs c'est un peu logique, si j'avais
trouvé une doc je l'aurais appliquée donc on n'aurait pas eu tout ç a à
raconter).
Est-ce qu'on trouve une doc plus complète à ce sujet, que j'aurais ma l
cherchée, ou c'est des trucs qu'il faut savoir, comme ça, en les ayan t
acquis au hasard des lectures ?
Pour être plus précis dans la formulation, ce serait plutôt que l es opérateurs bit à bit ne sont définis que pour les int, les ushort étant convertis implicitement en int lorsqu'on leur applique l'opérateur.
J'ai l'impression que ça, ce n'est pas précisé ici http://msdn.microsoft.com/fr-fr/library/sbf85k1c%28VS.80%29.aspx
Il m'avait semblé avoir cité un document qui indiquait sur quels type s était défini l'opérateur, mais peut-être bien que c'était pour l'assembleur finalement (d'ailleurs c'est un peu logique, si j'avais trouvé une doc je l'aurais appliquée donc on n'aurait pas eu tout ç a à raconter).
Est-ce qu'on trouve une doc plus complète à ce sujet, que j'aurais ma l cherchée, ou c'est des trucs qu'il faut savoir, comme ça, en les ayan t acquis au hasard des lectures ?
Christophe Lephay
"Gloops" a écrit dans le message de groupe de discussion : #II$
Est-ce qu'on trouve une doc plus complète à ce sujet, que j'aurais mal cherchée, ou c'est des trucs qu'il faut savoir, comme ça, en les ayant acquis au hasard des lectures ?
Trouvé ça "Any operation performed on types sbyte, byte, short, or ushort return int values" ici http://www.csharp-station.com/tutorials/Lesson02.aspx
"Gloops" <gloops@invalid.zailes.org> a écrit dans le message de groupe de
discussion : #II$OUPbKHA.5796@TK2MSFTNGP06.phx.gbl...
Est-ce qu'on trouve une doc plus complète à ce sujet, que j'aurais mal
cherchée, ou c'est des trucs qu'il faut savoir, comme ça, en les ayant
acquis au hasard des lectures ?
Trouvé ça "Any operation performed on types sbyte, byte, short, or ushort
return int values" ici http://www.csharp-station.com/tutorials/Lesson02.aspx
"Gloops" a écrit dans le message de groupe de discussion : #II$
Est-ce qu'on trouve une doc plus complète à ce sujet, que j'aurais mal cherchée, ou c'est des trucs qu'il faut savoir, comme ça, en les ayant acquis au hasard des lectures ?
Trouvé ça "Any operation performed on types sbyte, byte, short, or ushort return int values" ici http://www.csharp-station.com/tutorials/Lesson02.aspx
Gloops
Christophe Lephay a écrit, le 25/11/2009 08:11 :
"Gloops" a écrit dans le message de group e de discussion : #II$
Est-ce qu'on trouve une doc plus complète à ce sujet, que j'aurais mal cherchée, ou c'est des trucs qu'il faut savoir, comme ça, en les a yant acquis au hasard des lectures ?
Trouvé ça "Any operation performed on types sbyte, byte, short, or ushort return int values" ici http://www.csharp-station.com/tutorials/Lesson02.aspx
Ah, ben on dirait que voilà une piste intéressante :)
Christophe Lephay a écrit, le 25/11/2009 08:11 :
"Gloops" <gloops@invalid.zailes.org> a écrit dans le message de group e
de discussion : #II$OUPbKHA.5796@TK2MSFTNGP06.phx.gbl...
Est-ce qu'on trouve une doc plus complète à ce sujet, que j'aurais mal
cherchée, ou c'est des trucs qu'il faut savoir, comme ça, en les a yant
acquis au hasard des lectures ?
Trouvé ça "Any operation performed on types sbyte, byte, short, or
ushort return int values" ici
http://www.csharp-station.com/tutorials/Lesson02.aspx
Ah, ben on dirait que voilà une piste intéressante :)
"Gloops" a écrit dans le message de group e de discussion : #II$
Est-ce qu'on trouve une doc plus complète à ce sujet, que j'aurais mal cherchée, ou c'est des trucs qu'il faut savoir, comme ça, en les a yant acquis au hasard des lectures ?
Trouvé ça "Any operation performed on types sbyte, byte, short, or ushort return int values" ici http://www.csharp-station.com/tutorials/Lesson02.aspx
Ah, ben on dirait que voilà une piste intéressante :)