"Vincent Lefevre" <vincent+ a écrit dans le message de news: 20040705231733$
c = (unsigned char) 'é';
on n'a pas le droit de mettre des caractères accentués dans un code "propre" , non ?
Alexandre BACQUART
Dominique Baldo wrote:
Est ce qu'il y a moyen de faire proprement et simplement la chose suivante (et pas propre):
unsigned int c; c=('é'+256)&255; // forçage de 'é' en unsigned int voire unsigned char.
Pourquoi le +256 (qui ne sert à rien) ? En fait, qu'as-tu véritablement l'intention de faire ?
En tous cas, pour un entier :
(x + 256) & 255 == x & 255
Et d'ailleurs, tu peux très bien faire :
unsigned int c; c = 'é';
Ca, c'est propre. Tu n'as rien à forcer car les conversions implicites s'appliquent et il n'y aucune perte. Dans l'autre sens, il y a perte et il faut caster.
-- Tek
Dominique Baldo wrote:
Est ce qu'il y a moyen de faire proprement et simplement la chose
suivante (et pas propre):
unsigned int c;
c=('é'+256)&255; // forçage de 'é' en unsigned int voire unsigned char.
Pourquoi le +256 (qui ne sert à rien) ? En fait, qu'as-tu véritablement
l'intention de faire ?
En tous cas, pour un entier :
(x + 256) & 255 == x & 255
Et d'ailleurs, tu peux très bien faire :
unsigned int c;
c = 'é';
Ca, c'est propre. Tu n'as rien à forcer car les conversions implicites
s'appliquent et il n'y aucune perte. Dans l'autre sens, il y a perte et
il faut caster.
Est ce qu'il y a moyen de faire proprement et simplement la chose suivante (et pas propre):
unsigned int c; c=('é'+256)&255; // forçage de 'é' en unsigned int voire unsigned char.
Pourquoi le +256 (qui ne sert à rien) ? En fait, qu'as-tu véritablement l'intention de faire ?
En tous cas, pour un entier :
(x + 256) & 255 == x & 255
Et d'ailleurs, tu peux très bien faire :
unsigned int c; c = 'é';
Ca, c'est propre. Tu n'as rien à forcer car les conversions implicites s'appliquent et il n'y aucune perte. Dans l'autre sens, il y a perte et il faut caster.
-- Tek
Alexandre BACQUART
Vincent Lefevre wrote:
Dans l'article , Dominique Baldo écrit:
Est ce qu'il y a moyen de faire proprement et simplement la chose suivante (et pas propre):
unsigned int c; c=('é'+256)&255; // forçage de 'é' en unsigned int voire unsigned char.
c = (unsigned char) 'é';
Non, pas propre : cast superflu ET déroutant (même si cela marche).
-- Tek
Vincent Lefevre wrote:
Dans l'article <MPG.1b53fadcb7f2e27e989b64@news.free.fr>,
Dominique Baldo <dominique.baldo@ouha_nadou.fr> écrit:
Est ce qu'il y a moyen de faire proprement et simplement la chose
suivante (et pas propre):
unsigned int c;
c=('é'+256)&255; // forçage de 'é' en unsigned int voire unsigned char.
c = (unsigned char) 'é';
Non, pas propre : cast superflu ET déroutant (même si cela marche).
Est ce qu'il y a moyen de faire proprement et simplement la chose suivante (et pas propre):
unsigned int c; c=('é'+256)&255; // forçage de 'é' en unsigned int voire unsigned char.
c = (unsigned char) 'é';
Non, pas propre : cast superflu ET déroutant (même si cela marche).
-- Tek
Gabriel Dos Reis
"Stephane Legras-Decussy" <pas de mail @ pas de mail> writes:
| "Vincent Lefevre" <vincent+ a écrit dans le message de news: | 20040705231733$ | > | > c = (unsigned char) 'é'; | | on n'a pas le droit de mettre des caractères accentués dans un code | "propre" , non ?
Définis « propre ».
-- Gaby
"Stephane Legras-Decussy" <pas de mail @ pas de mail> writes:
| "Vincent Lefevre" <vincent+news@vinc17.org> a écrit dans le message de news:
| 20040705231733$6398@vinc17.org...
| >
| > c = (unsigned char) 'é';
|
| on n'a pas le droit de mettre des caractères accentués dans un code
| "propre" , non ?
"Stephane Legras-Decussy" <pas de mail @ pas de mail> writes:
| "Vincent Lefevre" <vincent+ a écrit dans le message de news: | 20040705231733$ | > | > c = (unsigned char) 'é'; | | on n'a pas le droit de mettre des caractères accentués dans un code | "propre" , non ?
Définis « propre ».
-- Gaby
Gabriel Dos Reis
Alexandre BACQUART writes:
| Vincent Lefevre wrote: | | > Dans l'article , | > Dominique Baldo écrit: | > | >> Est ce qu'il y a moyen de faire proprement et simplement la chose | >> suivante (et pas propre): | > | >>unsigned int c; | >>c=('é'+256)&255; // forçage de 'é' en unsigned int voire unsigned char. | > c = (unsigned char) 'é'; | | Non, pas propre : cast superflu ET déroutant (même si cela marche).
N'importe quoi.
-- Gaby
Alexandre BACQUART <tek512@hotmail.com> writes:
| Vincent Lefevre wrote:
|
| > Dans l'article <MPG.1b53fadcb7f2e27e989b64@news.free.fr>,
| > Dominique Baldo <dominique.baldo@ouha_nadou.fr> écrit:
| >
| >> Est ce qu'il y a moyen de faire proprement et simplement la chose
| >> suivante (et pas propre):
| >
| >>unsigned int c;
| >>c=('é'+256)&255; // forçage de 'é' en unsigned int voire unsigned char.
| > c = (unsigned char) 'é';
|
| Non, pas propre : cast superflu ET déroutant (même si cela marche).
| Vincent Lefevre wrote: | | > Dans l'article , | > Dominique Baldo écrit: | > | >> Est ce qu'il y a moyen de faire proprement et simplement la chose | >> suivante (et pas propre): | > | >>unsigned int c; | >>c=('é'+256)&255; // forçage de 'é' en unsigned int voire unsigned char. | > c = (unsigned char) 'é'; | | Non, pas propre : cast superflu ET déroutant (même si cela marche).
N'importe quoi.
-- Gaby
Gabriel Dos Reis
Alexandre BACQUART writes:
| Dominique Baldo wrote: | | > Est ce qu'il y a moyen de faire proprement et simplement la chose | > suivante (et pas propre): | > unsigned int c; | > c=('é'+256)&255; // forçage de 'é' en unsigned int voire unsigned char. | | Pourquoi le +256 (qui ne sert à rien) ? En fait, qu'as-tu | véritablement l'intention de faire ? | | En tous cas, pour un entier : | | (x + 256) & 255 == x & 255
Faux.
-- Gaby
Alexandre BACQUART <tek512@hotmail.com> writes:
| Dominique Baldo wrote:
|
| > Est ce qu'il y a moyen de faire proprement et simplement la chose
| > suivante (et pas propre):
| > unsigned int c;
| > c=('é'+256)&255; // forçage de 'é' en unsigned int voire unsigned char.
|
| Pourquoi le +256 (qui ne sert à rien) ? En fait, qu'as-tu
| véritablement l'intention de faire ?
|
| En tous cas, pour un entier :
|
| (x + 256) & 255 == x & 255
| Dominique Baldo wrote: | | > Est ce qu'il y a moyen de faire proprement et simplement la chose | > suivante (et pas propre): | > unsigned int c; | > c=('é'+256)&255; // forçage de 'é' en unsigned int voire unsigned char. | | Pourquoi le +256 (qui ne sert à rien) ? En fait, qu'as-tu | véritablement l'intention de faire ? | | En tous cas, pour un entier : | | (x + 256) & 255 == x & 255
Faux.
-- Gaby
Eric Lévénez
Le 6/07/04 2:46, dans <40e9f5cd$0$23504$, « Alexandre BACQUART » a écrit :
Vincent Lefevre wrote:
c = (unsigned char) 'é';
Non, pas propre : cast superflu ET déroutant (même si cela marche).
Ça ne marche pas toujours, en particulier avec un système qui utilise l'UTF-8 comme Mac OS X.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Le 6/07/04 2:46, dans <40e9f5cd$0$23504$626a14ce@news.free.fr>, « Alexandre
BACQUART » <tek512@hotmail.com> a écrit :
Vincent Lefevre wrote:
c = (unsigned char) 'é';
Non, pas propre : cast superflu ET déroutant (même si cela marche).
Ça ne marche pas toujours, en particulier avec un système qui utilise
l'UTF-8 comme Mac OS X.
--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.