Pour des calculs sur des tailles de fichiers en octets je déborde avec des
"unsigned long". Je cherche donc une classe toute faite qui permette de
faire des calculs et des affichages sur des entiers plus longs. Ca devrait
exister mais j'ai pas trouvé.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Cyrille
Salut,
Pour des calculs sur des tailles de fichiers en octets je déborde avec des "unsigned long". Je cherche donc une classe toute faite qui permette de faire des calculs et des affichages sur des entiers plus longs. Ca devrait exister mais j'ai pas trouvé.
Certaines architectures définissent "long long" qui doit faire 64 bits, garantis par le standard du C99 mais pas par celui du C++, je crois. Sous Windows on trouve aussi __int64.
Salut,
Pour des calculs sur des tailles de fichiers en octets je déborde avec des
"unsigned long". Je cherche donc une classe toute faite qui permette de
faire des calculs et des affichages sur des entiers plus longs. Ca devrait
exister mais j'ai pas trouvé.
Certaines architectures définissent "long long" qui doit faire 64 bits,
garantis par le standard du C99 mais pas par celui du C++, je crois.
Sous Windows on trouve aussi __int64.
Pour des calculs sur des tailles de fichiers en octets je déborde avec des "unsigned long". Je cherche donc une classe toute faite qui permette de faire des calculs et des affichages sur des entiers plus longs. Ca devrait exister mais j'ai pas trouvé.
Certaines architectures définissent "long long" qui doit faire 64 bits, garantis par le standard du C99 mais pas par celui du C++, je crois. Sous Windows on trouve aussi __int64.
Laurent
Oui effectivement __int64 marche avec mon compilo sous windows mais pas long long.
Merci bien.
Oui effectivement __int64 marche avec mon compilo sous windows mais pas long
long.
Oui effectivement __int64 marche avec mon compilo sous windows mais pas long long.
Merci bien.
Fabien LE LEZ
On Sun, 6 Mar 2005 22:47:54 +0100, "Laurent" :
Oui effectivement __int64 marche avec mon compilo sous windows mais pas long long.
Histoire de faciliter la portabilité, je te conseille d'écrire une fois pour toute
typedef __int64 Entier64Bits;
et de n'utiliser que le type "Entier64Bits" -- ainsi, si jamais tu dois compiler ton code sur une autre plate-forme, seule la ligne avec le typedef devra être adaptée.
-- ;-)
On Sun, 6 Mar 2005 22:47:54 +0100, "Laurent" <tnerual@abc.com>:
Oui effectivement __int64 marche avec mon compilo sous windows mais pas long
long.
Histoire de faciliter la portabilité, je te conseille d'écrire une
fois pour toute
typedef __int64 Entier64Bits;
et de n'utiliser que le type "Entier64Bits" -- ainsi, si jamais tu
dois compiler ton code sur une autre plate-forme, seule la ligne avec
le typedef devra être adaptée.
Oui effectivement __int64 marche avec mon compilo sous windows mais pas long long.
Histoire de faciliter la portabilité, je te conseille d'écrire une fois pour toute
typedef __int64 Entier64Bits;
et de n'utiliser que le type "Entier64Bits" -- ainsi, si jamais tu dois compiler ton code sur une autre plate-forme, seule la ligne avec le typedef devra être adaptée.
-- ;-)
kanze
Fabien LE LEZ wrote:
On Sun, 6 Mar 2005 22:47:54 +0100, "Laurent" :
Oui effectivement __int64 marche avec mon compilo sous windows mais pas long long.
Histoire de faciliter la portabilité, je te conseille d'écrire une fois pour toute
typedef __int64 Entier64Bits;
et de n'utiliser que le type "Entier64Bits" -- ainsi, si jamais tu dois compiler ton code sur une autre plate-forme, seule la ligne avec le typedef devra être adaptée.
Histoire de compatibilité, inclure <stdint.h>, et se servir d'int64_t me semble le plus indiqué. Avec la condition, évidemment, que si ton compilateur n'offre pas encore <stdint.h>, il faut que tu l'écris. (Mais n'en écrire que les parties dont tu as besoin, ce n'est pas autant de travail que ça.)
-- James Kanze GABI Software 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
Fabien LE LEZ wrote:
On Sun, 6 Mar 2005 22:47:54 +0100, "Laurent"
<tnerual@abc.com>:
Oui effectivement __int64 marche avec mon compilo sous
windows mais pas long long.
Histoire de faciliter la portabilité, je te conseille d'écrire
une fois pour toute
typedef __int64 Entier64Bits;
et de n'utiliser que le type "Entier64Bits" -- ainsi, si
jamais tu dois compiler ton code sur une autre plate-forme,
seule la ligne avec le typedef devra être adaptée.
Histoire de compatibilité, inclure <stdint.h>, et se servir
d'int64_t me semble le plus indiqué. Avec la condition,
évidemment, que si ton compilateur n'offre pas encore
<stdint.h>, il faut que tu l'écris. (Mais n'en écrire que les
parties dont tu as besoin, ce n'est pas autant de travail que
ça.)
--
James Kanze GABI Software
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
Oui effectivement __int64 marche avec mon compilo sous windows mais pas long long.
Histoire de faciliter la portabilité, je te conseille d'écrire une fois pour toute
typedef __int64 Entier64Bits;
et de n'utiliser que le type "Entier64Bits" -- ainsi, si jamais tu dois compiler ton code sur une autre plate-forme, seule la ligne avec le typedef devra être adaptée.
Histoire de compatibilité, inclure <stdint.h>, et se servir d'int64_t me semble le plus indiqué. Avec la condition, évidemment, que si ton compilateur n'offre pas encore <stdint.h>, il faut que tu l'écris. (Mais n'en écrire que les parties dont tu as besoin, ce n'est pas autant de travail que ça.)
-- James Kanze GABI Software 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
Laurent
Histoire de faciliter la portabilité, je te conseille d'écrire une fois pour toute
typedef __int64 Entier64Bits;
et de n'utiliser que le type "Entier64Bits" -- ainsi, si jamais tu dois compiler ton code sur une autre plate-forme, seule la ligne avec le typedef devra être adaptée.
C'est une bonne idée effectivement, car j'ai déjà dû changer tout les long en __int64 ... heureusement c'est pas un gros programme.
Histoire de faciliter la portabilité, je te conseille d'écrire
une fois pour toute
typedef __int64 Entier64Bits;
et de n'utiliser que le type "Entier64Bits" -- ainsi, si
jamais tu dois compiler ton code sur une autre plate-forme,
seule la ligne avec le typedef devra être adaptée.
C'est une bonne idée effectivement, car j'ai déjà dû changer tout les long
en __int64 ... heureusement c'est pas un gros programme.
Histoire de faciliter la portabilité, je te conseille d'écrire une fois pour toute
typedef __int64 Entier64Bits;
et de n'utiliser que le type "Entier64Bits" -- ainsi, si jamais tu dois compiler ton code sur une autre plate-forme, seule la ligne avec le typedef devra être adaptée.
C'est une bonne idée effectivement, car j'ai déjà dû changer tout les long en __int64 ... heureusement c'est pas un gros programme.