J'ai un probleme avec cet algo de calcul de crc32 sur ia64:
long crc = 0xFFFFFFFF;
if (buf != NULL) {
while (len > 0) {
crc = (crc >> 8) ^ ((long) crc32tab[(crc ^ (*buf)) &
0xff]);
buf++;
len--;
}
}
Le (long) vient me mettre la grouille et j'ai aucune idee comment
corriger ca. Est ce que qqn a une idee ? Pis comme je suis une chiasse,
si je pouvais avoir l'explication theorique avec ... Parce que que je
me dise que le long fait 8 bits, ben ca me change pas grand chose ...
sur ia64:
./a.out TEST
O=EEEA93B8
sur i386:
./a.out TEST
O=11156C47
Voici le programme de test complet, a compiler avec juste g++
monfichier.c, a tester avec ./a.out monmot :
"Vincent Lefevre" <vincent+ a écrit dans le message de news:20060329103806$
Dans l'article <e0c457$3bp$, James Kanze écrit:
Sauf qu'ici, on parle justement du C, et non du C++. Et donc, stdint.h est standard (et Boost risque de ne pas marcher du tout).
Sauf que rigoureusement, c'est <stdint.h> et non stdint.h; enfin, la norme met les chevrons partout, sauf dans l'index, pour une raison technique je suppose.
Pige pas là ! Tu veux donner des cours de langage C à James ... et, tu supposes que les chevrons auraient un raison technique.
Ha ! Ha ! ... faut reconnaitre, elle est pas mal celle-là.
"Vincent Lefevre" <vincent+news@vinc17.org> a écrit dans le message de news:20060329103806$1f73@prunille.vinc17.org...
Dans l'article <e0c457$3bp$1@emma.aioe.org>,
James Kanze <kanze.james@neuf.fr> écrit:
Sauf qu'ici, on parle justement du C, et non du C++. Et donc,
stdint.h est standard (et Boost risque de ne pas marcher du
tout).
Sauf que rigoureusement, c'est <stdint.h> et non stdint.h; enfin, la
norme met les chevrons partout, sauf dans l'index, pour une raison
technique je suppose.
Pige pas là !
Tu veux donner des cours de langage C à James ... et, tu supposes que les chevrons auraient un raison technique.
Ha ! Ha ! ... faut reconnaitre, elle est pas mal celle-là.
"Vincent Lefevre" <vincent+ a écrit dans le message de news:20060329103806$
Dans l'article <e0c457$3bp$, James Kanze écrit:
Sauf qu'ici, on parle justement du C, et non du C++. Et donc, stdint.h est standard (et Boost risque de ne pas marcher du tout).
Sauf que rigoureusement, c'est <stdint.h> et non stdint.h; enfin, la norme met les chevrons partout, sauf dans l'index, pour une raison technique je suppose.
Pige pas là ! Tu veux donner des cours de langage C à James ... et, tu supposes que les chevrons auraient un raison technique.
Ha ! Ha ! ... faut reconnaitre, elle est pas mal celle-là.
"Vincent Lefevre" <vincent+ a écrit dans le message de news:20060329103806$
Dans l'article <e0c457$3bp$, James Kanze écrit:
Sauf qu'ici, on parle justement du C, et non du C++. Et donc, stdint.h est standard (et Boost risque de ne pas marcher du tout).
Sauf que rigoureusement, c'est <stdint.h> et non stdint.h; enfin, la norme met les chevrons partout, sauf dans l'index, pour une raison technique je suppose.
Pige pas là ! Tu veux donner des cours de langage C à James ... et, tu supposes que les chevrons auraient un raison technique.
Je disais que les chevrons n'étaient pas mis dans l'index probablement pour une raison technique, par exemple pour que la référence à <stdint.h> soit placée sous la lettre "s" et non pas ailleurs (comme l'index est construit automatiquement et non pas à la main).
Dans l'article <1143629781.609525@quito.magic.fr>,
TERENCE <Ael-Rowan.TERENCE@noreply.com> écrit:
"Vincent Lefevre" <vincent+news@vinc17.org> a écrit dans le message de news:20060329103806$1f73@prunille.vinc17.org...
Dans l'article <e0c457$3bp$1@emma.aioe.org>,
James Kanze <kanze.james@neuf.fr> écrit:
Sauf qu'ici, on parle justement du C, et non du C++. Et donc,
stdint.h est standard (et Boost risque de ne pas marcher du
tout).
Sauf que rigoureusement, c'est <stdint.h> et non stdint.h; enfin, la
norme met les chevrons partout, sauf dans l'index, pour une raison
technique je suppose.
Pige pas là ! Tu veux donner des cours de langage C à James ... et,
tu supposes que les chevrons auraient un raison technique.
Je disais que les chevrons n'étaient pas mis dans l'index probablement
pour une raison technique, par exemple pour que la référence à
<stdint.h> soit placée sous la lettre "s" et non pas ailleurs (comme
l'index est construit automatiquement et non pas à la main).
"Vincent Lefevre" <vincent+ a écrit dans le message de news:20060329103806$
Dans l'article <e0c457$3bp$, James Kanze écrit:
Sauf qu'ici, on parle justement du C, et non du C++. Et donc, stdint.h est standard (et Boost risque de ne pas marcher du tout).
Sauf que rigoureusement, c'est <stdint.h> et non stdint.h; enfin, la norme met les chevrons partout, sauf dans l'index, pour une raison technique je suppose.
Pige pas là ! Tu veux donner des cours de langage C à James ... et, tu supposes que les chevrons auraient un raison technique.
Je disais que les chevrons n'étaient pas mis dans l'index probablement pour une raison technique, par exemple pour que la référence à <stdint.h> soit placée sous la lettre "s" et non pas ailleurs (comme l'index est construit automatiquement et non pas à la main).
"Vincent Lefevre" <vincent+ a écrit dans le message de news:20060329111852$
Dans l'article , TERENCE écrit:
"Vincent Lefevre" <vincent+ a écrit dans le message de news:20060329103806$
Dans l'article <e0c457$3bp$, James Kanze écrit:
Sauf qu'ici, on parle justement du C, et non du C++. Et donc, stdint.h est standard (et Boost risque de ne pas marcher du tout).
Sauf que rigoureusement, c'est <stdint.h> et non stdint.h; enfin, la norme met les chevrons partout, sauf dans l'index, pour une raison technique je suppose.
Pige pas là ! Tu veux donner des cours de langage C à James ... et, tu supposes que les chevrons auraient un raison technique.
Je disais que les chevrons n'étaient pas mis dans l'index probablement pour une raison technique, par exemple pour que la référence à <stdint.h> soit placée sous la lettre "s" et non pas ailleurs (comme l'index est construit automatiquement et non pas à la main).
Je te prie de m'excuser d'avoir déformé tes propos. J'ai pas pu m'empêcher cette gaminerie.
Mais parler rigueur, et indiquer l'usage des cormiers à James ... :-) D'omettre le ",sauf dans l'index," m'a semblé avoir un effet comique, qui, certes, n'amuse que moi.
"Vincent Lefevre" <vincent+news@vinc17.org> a écrit dans le message de news:20060329111852$19ba@prunille.vinc17.org...
Dans l'article <1143629781.609525@quito.magic.fr>,
TERENCE <Ael-Rowan.TERENCE@noreply.com> écrit:
"Vincent Lefevre" <vincent+news@vinc17.org> a écrit dans le message de news:20060329103806$1f73@prunille.vinc17.org...
Dans l'article <e0c457$3bp$1@emma.aioe.org>,
James Kanze <kanze.james@neuf.fr> écrit:
Sauf qu'ici, on parle justement du C, et non du C++. Et donc,
stdint.h est standard (et Boost risque de ne pas marcher du
tout).
Sauf que rigoureusement, c'est <stdint.h> et non stdint.h; enfin, la
norme met les chevrons partout, sauf dans l'index, pour une raison
technique je suppose.
Pige pas là ! Tu veux donner des cours de langage C à James ... et,
tu supposes que les chevrons auraient un raison technique.
Je disais que les chevrons n'étaient pas mis dans l'index probablement
pour une raison technique, par exemple pour que la référence à
<stdint.h> soit placée sous la lettre "s" et non pas ailleurs (comme
l'index est construit automatiquement et non pas à la main).
Je te prie de m'excuser d'avoir déformé tes propos. J'ai pas pu m'empêcher cette gaminerie.
Mais parler rigueur, et indiquer l'usage des cormiers à James ... :-)
D'omettre le ",sauf dans l'index," m'a semblé avoir un effet comique, qui, certes, n'amuse que moi.
"Vincent Lefevre" <vincent+ a écrit dans le message de news:20060329111852$
Dans l'article , TERENCE écrit:
"Vincent Lefevre" <vincent+ a écrit dans le message de news:20060329103806$
Dans l'article <e0c457$3bp$, James Kanze écrit:
Sauf qu'ici, on parle justement du C, et non du C++. Et donc, stdint.h est standard (et Boost risque de ne pas marcher du tout).
Sauf que rigoureusement, c'est <stdint.h> et non stdint.h; enfin, la norme met les chevrons partout, sauf dans l'index, pour une raison technique je suppose.
Pige pas là ! Tu veux donner des cours de langage C à James ... et, tu supposes que les chevrons auraient un raison technique.
Je disais que les chevrons n'étaient pas mis dans l'index probablement pour une raison technique, par exemple pour que la référence à <stdint.h> soit placée sous la lettre "s" et non pas ailleurs (comme l'index est construit automatiquement et non pas à la main).
Je te prie de m'excuser d'avoir déformé tes propos. J'ai pas pu m'empêcher cette gaminerie.
Mais parler rigueur, et indiquer l'usage des cormiers à James ... :-) D'omettre le ",sauf dans l'index," m'a semblé avoir un effet comique, qui, certes, n'amuse que moi.
TERENCE
"Babacio" a écrit dans le message de news:
"TERENCE"
Mais parler rigueur, et indiquer l'usage des cormiers à James...
Je ne connais pas cet usage du mot « cormier ». C'est un arbre, je crois ?
Heu ... Pardon, y'a des jours comme ça ! j'aurais dû continuer avec chevron qui est le nom standard.
"Babacio" <babacio@free.fr> a écrit dans le message de news:m2r74lpfj1.fsf@baba.ba...
"TERENCE"
Mais parler rigueur, et indiquer l'usage des cormiers à James...
Je ne connais pas cet usage du mot « cormier ». C'est un arbre, je
crois ?
Heu ... Pardon, y'a des jours comme ça ! j'aurais dû continuer avec chevron qui est le nom standard.
Mais parler rigueur, et indiquer l'usage des cormiers à James...
Je ne connais pas cet usage du mot « cormier ». C'est un arbre, je crois ?
Heu ... Pardon, y'a des jours comme ça ! j'aurais dû continuer avec chevron qui est le nom standard.
Antoine Leca
En news:20060329104516$, Vincent Lefevre va escriure:
Si j'ai bien compris, tu peux retourner une valeur qui n'est pas représentable dans un long. Il faudrait tester si c'est > LONG_MAX et renvoyer la valeur négative correspondante si ce n'est pas le cas.
Très juste.
long long, c'est pour être bien sûr que l'on va utiliser des registres sur 64 bits, /donc/ être portable sur une architecture 64 bits.
Je ne comprends pas pourquoi un unsigned long ne suffirait pas, puisque le CRC reste sur 32 bits.
Un unsigned long suffit, MAIS ne permet pas (sauf sur une machine qui offre des long sur 33 bits significatifs ou plus) de « visualiser » la différence avec l'algorithme (non portable) du premier message.
Moi NON spécialiste du domaine, néanmoins à ma connaissance, ce calcul n'est PAS un CRC, en tous cas au sens où on entend ce mot (arithmétique des polynômes).
Antoine
En news:20060329104516$3350@prunille.vinc17.org, Vincent Lefevre va
escriure:
Si j'ai bien compris, tu peux retourner une valeur qui n'est pas
représentable dans un long. Il faudrait tester si c'est > LONG_MAX
et renvoyer la valeur négative correspondante si ce n'est pas le
cas.
Très juste.
long long, c'est pour être bien sûr que l'on va utiliser des
registres sur 64 bits, /donc/ être portable sur une architecture 64
bits.
Je ne comprends pas pourquoi un unsigned long ne suffirait pas,
puisque le CRC reste sur 32 bits.
Un unsigned long suffit, MAIS ne permet pas (sauf sur une machine qui offre
des long sur 33 bits significatifs ou plus) de « visualiser » la différence
avec l'algorithme (non portable) du premier message.
Moi NON spécialiste du domaine, néanmoins à ma connaissance, ce calcul n'est
PAS un CRC, en tous cas au sens où on entend ce mot (arithmétique des
polynômes).
En news:20060329104516$, Vincent Lefevre va escriure:
Si j'ai bien compris, tu peux retourner une valeur qui n'est pas représentable dans un long. Il faudrait tester si c'est > LONG_MAX et renvoyer la valeur négative correspondante si ce n'est pas le cas.
Très juste.
long long, c'est pour être bien sûr que l'on va utiliser des registres sur 64 bits, /donc/ être portable sur une architecture 64 bits.
Je ne comprends pas pourquoi un unsigned long ne suffirait pas, puisque le CRC reste sur 32 bits.
Un unsigned long suffit, MAIS ne permet pas (sauf sur une machine qui offre des long sur 33 bits significatifs ou plus) de « visualiser » la différence avec l'algorithme (non portable) du premier message.
Moi NON spécialiste du domaine, néanmoins à ma connaissance, ce calcul n'est PAS un CRC, en tous cas au sens où on entend ce mot (arithmétique des polynômes).
Antoine
TERENCE
"Babacio" a écrit dans le message de news:
"TERENCE"
Mais parler rigueur, et indiquer l'usage des cormiers à James...
Je ne connais pas cet usage du mot « cormier ». C'est un arbre, je crois ?
Heu ... Pardon, y'a des jours comme ça ! j'aurais dû continuer avec chevron qui est le nom standard.
Ma question est sincère, il ne s'agissait pas de vous faire remarquer une erreur ; où avez-vous pêché cet emploi de « cormier » ? Influence d'une langue étrangère ? Confusion -- avec quel mot ? Ça ne ressemble guère à « chevron » !
Ou bien, ne savez-vous plus vous-même comment ce mot a germé sous vos doigts ?
Hou la la, c'est une double erreur. Il y a une coquille : ce n'est pas "cormier" mais "cornier". Puis, aussi loin que je me souviens, j'ai utilisé "cornier" en lieu et place de "chevron", mais de là, savoir d'où cela provient ... beuh.
"Babacio" <babacio@free.fr> a écrit dans le message de news:m2bqvppaip.fsf@baba.ba...
"TERENCE"
Mais parler rigueur, et indiquer l'usage des cormiers à James...
Je ne connais pas cet usage du mot « cormier ». C'est un arbre, je
crois ?
Heu ... Pardon, y'a des jours comme ça ! j'aurais dû continuer avec
chevron qui est le nom standard.
Ma question est sincère, il ne s'agissait pas de vous faire remarquer
une erreur ; où avez-vous pêché cet emploi de « cormier » ? Influence
d'une langue étrangère ? Confusion -- avec quel mot ? Ça ne ressemble
guère à « chevron » !
Ou bien, ne savez-vous plus vous-même comment ce mot a germé sous vos
doigts ?
Hou la la, c'est une double erreur.
Il y a une coquille : ce n'est pas "cormier" mais "cornier".
Puis, aussi loin que je me souviens, j'ai utilisé "cornier" en lieu et place de "chevron", mais de là, savoir d'où cela provient ... beuh.
Mais parler rigueur, et indiquer l'usage des cormiers à James...
Je ne connais pas cet usage du mot « cormier ». C'est un arbre, je crois ?
Heu ... Pardon, y'a des jours comme ça ! j'aurais dû continuer avec chevron qui est le nom standard.
Ma question est sincère, il ne s'agissait pas de vous faire remarquer une erreur ; où avez-vous pêché cet emploi de « cormier » ? Influence d'une langue étrangère ? Confusion -- avec quel mot ? Ça ne ressemble guère à « chevron » !
Ou bien, ne savez-vous plus vous-même comment ce mot a germé sous vos doigts ?
Hou la la, c'est une double erreur. Il y a une coquille : ce n'est pas "cormier" mais "cornier". Puis, aussi loin que je me souviens, j'ai utilisé "cornier" en lieu et place de "chevron", mais de là, savoir d'où cela provient ... beuh.
TERENCE
"Babacio" a écrit dans le message de news:
"TERENCE"
J'ignorais ce mot, mais le dictionnaire le connaît, lui.
CORNIER, adj. Qui est à l'angle, qui forme coin.
C'est un adjectif, cependant ; le substantif associé est « cornière », que je connaissais, mais j'ai pas fait le déclic avec « cormier »...
J'ai aussi cherché, et j'ai trouvé ça :
<citation littré> [...]
S. m. Terme de marine. Cornier, partie élevée des angles de l'arrière d'un bâtiment, au-dessus des hanches.
[...]
De cornier vient l'anglais korner, un coin, un angle.
[...] </citation littré>
"Babacio" <babacio@free.fr> a écrit dans le message de news:m2mzf8osil.fsf@baba.ba...
"TERENCE"
J'ignorais ce mot, mais le dictionnaire le connaît, lui.
CORNIER, adj. Qui est à l'angle, qui forme coin.
C'est un adjectif, cependant ; le substantif associé est « cornière »,
que je connaissais, mais j'ai pas fait le déclic avec « cormier »...
J'ai aussi cherché, et j'ai trouvé ça :
<citation littré>
[...]
S. m. Terme de marine. Cornier, partie élevée des angles de l'arrière d'un bâtiment, au-dessus des hanches.
[...]
De cornier vient l'anglais korner, un coin, un angle.
J'ignorais ce mot, mais le dictionnaire le connaît, lui.
CORNIER, adj. Qui est à l'angle, qui forme coin.
C'est un adjectif, cependant ; le substantif associé est « cornière », que je connaissais, mais j'ai pas fait le déclic avec « cormier »...
J'ai aussi cherché, et j'ai trouvé ça :
<citation littré> [...]
S. m. Terme de marine. Cornier, partie élevée des angles de l'arrière d'un bâtiment, au-dessus des hanches.
[...]
De cornier vient l'anglais korner, un coin, un angle.
[...] </citation littré>
James Kanze
TERENCE wrote:
"Vincent Lefevre" <vincent+ a écrit dans le message de news:20060329103806$
Dans l'article <e0c457$3bp$, James Kanze écrit:
Sauf qu'ici, on parle justement du C, et non du C++. Et donc, stdint.h est standard (et Boost risque de ne pas marcher du tout).
Sauf que rigoureusement, c'est <stdint.h> et non stdint.h; enfin, la norme met les chevrons partout, sauf dans l'index, pour une raison technique je suppose.
Pige pas là ! Tu veux donner des cours de langage C à James ... et, tu supposes que les chevrons auraient un raison technique.
Sauf qu'il a bien raison. J'ai laissé tomber les chevrons par paresse seulement -- comme il dit, c'est bien <stdint.h>, et non stdint.h (mais j'imagine que les lecteurs m'auront compris). Et j'imagine aussi que c'est bien à cause d'une raison technique (de la technique typographique) qu'ils n'y sont pas dans l'index.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
TERENCE wrote:
"Vincent Lefevre" <vincent+news@vinc17.org> a écrit dans le
message de news:20060329103806$1f73@prunille.vinc17.org...
Dans l'article <e0c457$3bp$1@emma.aioe.org>,
James Kanze <kanze.james@neuf.fr> écrit:
Sauf qu'ici, on parle justement du C, et non du C++. Et
donc, stdint.h est standard (et Boost risque de ne pas
marcher du tout).
Sauf que rigoureusement, c'est <stdint.h> et non stdint.h;
enfin, la norme met les chevrons partout, sauf dans l'index,
pour une raison technique je suppose.
Pige pas là !
Tu veux donner des cours de langage C à James ... et, tu
supposes que les chevrons auraient un raison technique.
Sauf qu'il a bien raison. J'ai laissé tomber les chevrons par
paresse seulement -- comme il dit, c'est bien <stdint.h>, et non
stdint.h (mais j'imagine que les lecteurs m'auront compris). Et
j'imagine aussi que c'est bien à cause d'une raison technique
(de la technique typographique) qu'ils n'y sont pas dans
l'index.
--
James Kanze kanze.james@neuf.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
"Vincent Lefevre" <vincent+ a écrit dans le message de news:20060329103806$
Dans l'article <e0c457$3bp$, James Kanze écrit:
Sauf qu'ici, on parle justement du C, et non du C++. Et donc, stdint.h est standard (et Boost risque de ne pas marcher du tout).
Sauf que rigoureusement, c'est <stdint.h> et non stdint.h; enfin, la norme met les chevrons partout, sauf dans l'index, pour une raison technique je suppose.
Pige pas là ! Tu veux donner des cours de langage C à James ... et, tu supposes que les chevrons auraient un raison technique.
Sauf qu'il a bien raison. J'ai laissé tomber les chevrons par paresse seulement -- comme il dit, c'est bien <stdint.h>, et non stdint.h (mais j'imagine que les lecteurs m'auront compris). Et j'imagine aussi que c'est bien à cause d'une raison technique (de la technique typographique) qu'ils n'y sont pas dans l'index.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Vincent Lefevre
Dans l'article <e0hgfn$5qr$, James Kanze écrit:
Sauf qu'il a bien raison. J'ai laissé tomber les chevrons par paresse seulement -- comme il dit, c'est bien <stdint.h>, et non stdint.h (mais j'imagine que les lecteurs m'auront compris).
Il peut y avoir des débutants qui lisent (éventuellement via les archives), et certains peuvent croire qu'un header n'est qu'un fichier. Autant ne pas leur apporter de confusion.
Dans l'article <e0hgfn$5qr$1@emma.aioe.org>,
James Kanze <kanze.james@neuf.fr> écrit:
Sauf qu'il a bien raison. J'ai laissé tomber les chevrons par
paresse seulement -- comme il dit, c'est bien <stdint.h>, et non
stdint.h (mais j'imagine que les lecteurs m'auront compris).
Il peut y avoir des débutants qui lisent (éventuellement via les
archives), et certains peuvent croire qu'un header n'est qu'un
fichier. Autant ne pas leur apporter de confusion.
Sauf qu'il a bien raison. J'ai laissé tomber les chevrons par paresse seulement -- comme il dit, c'est bien <stdint.h>, et non stdint.h (mais j'imagine que les lecteurs m'auront compris).
Il peut y avoir des débutants qui lisent (éventuellement via les archives), et certains peuvent croire qu'un header n'est qu'un fichier. Autant ne pas leur apporter de confusion.