J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. probleme
: je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. probleme
: je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. probleme
: je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
bonjour,
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. probleme
: je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
bonjour,
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. probleme
: je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
bonjour,
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. probleme
: je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
bonjour,
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. prob leme
: je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environnement MS Visual C++ 6)
bonjour,
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. prob leme
: je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environnement MS Visual C++ 6)
bonjour,
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. prob leme
: je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environnement MS Visual C++ 6)
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. problemeje ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
Est-ce que le compilateur offre un support pour une telle chose ?
Que vaut std::limits<long long>.digits() ?
Si le compilateur offre un support pour de tels nombres,
c'est facile, on le prend.
Sinon, c'est plus difficile, surtout suivant le degrès de
portabilité souhaité.
L'idée de base, c'est de faire une classe qui surcharge
les opérateurs arithmétiques et décompose les opérations
(opération membre à membre, propagation de retenue, etc.)
Il doit surement déjà en exister des implémentations,
mais je ne sais pas où les trouver.
Oui. J'en ai même une dans mes papiers (certainement au C++ très
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. probleme
je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
Est-ce que le compilateur offre un support pour une telle chose ?
Que vaut std::limits<long long>.digits() ?
Si le compilateur offre un support pour de tels nombres,
c'est facile, on le prend.
Sinon, c'est plus difficile, surtout suivant le degrès de
portabilité souhaité.
L'idée de base, c'est de faire une classe qui surcharge
les opérateurs arithmétiques et décompose les opérations
(opération membre à membre, propagation de retenue, etc.)
Il doit surement déjà en exister des implémentations,
mais je ne sais pas où les trouver.
Oui. J'en ai même une dans mes papiers (certainement au C++ très
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. problemeje ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
Est-ce que le compilateur offre un support pour une telle chose ?
Que vaut std::limits<long long>.digits() ?
Si le compilateur offre un support pour de tels nombres,
c'est facile, on le prend.
Sinon, c'est plus difficile, surtout suivant le degrès de
portabilité souhaité.
L'idée de base, c'est de faire une classe qui surcharge
les opérateurs arithmétiques et décompose les opérations
(opération membre à membre, propagation de retenue, etc.)
Il doit surement déjà en exister des implémentations,
mais je ne sais pas où les trouver.
Oui. J'en ai même une dans mes papiers (certainement au C++ très
C'est à mon sens un des cas, rares en vérité, où l'assembleur, si on peut
se l'autoriser, est efficace, mais également plus lisible et moins
générateur d'erreurs.
C'est à mon sens un des cas, rares en vérité, où l'assembleur, si on peut
se l'autoriser, est efficace, mais également plus lisible et moins
générateur d'erreurs.
C'est à mon sens un des cas, rares en vérité, où l'assembleur, si on peut
se l'autoriser, est efficace, mais également plus lisible et moins
générateur d'erreurs.
"Pierre Maurette" writes:C'est à mon sens un des cas, rares en vérité, où l'assembleur, si on peut
se l'autoriser, est efficace, mais également plus lisible et moins
générateur d'erreurs.
Je suppose que tu parles des additions et des soustractions. Parce
que les multiplications et les divisions en assembleurs pour des
operandes de tailles variables, c'est pas si simple que ca. (Le seul
endroit ou j'ai vu un algo decrit en detail pour la division, c'est
chez Knuth).
Effectivement, ce n'est pas simple. Ceci dit, et sans évoquer des jeux
"Pierre Maurette" <mmaauurreetttteeppiieerrrree@wwaannaaddoooo.ffrr> writes:
C'est à mon sens un des cas, rares en vérité, où l'assembleur, si on peut
se l'autoriser, est efficace, mais également plus lisible et moins
générateur d'erreurs.
Je suppose que tu parles des additions et des soustractions. Parce
que les multiplications et les divisions en assembleurs pour des
operandes de tailles variables, c'est pas si simple que ca. (Le seul
endroit ou j'ai vu un algo decrit en detail pour la division, c'est
chez Knuth).
Effectivement, ce n'est pas simple. Ceci dit, et sans évoquer des jeux
"Pierre Maurette" writes:C'est à mon sens un des cas, rares en vérité, où l'assembleur, si on peut
se l'autoriser, est efficace, mais également plus lisible et moins
générateur d'erreurs.
Je suppose que tu parles des additions et des soustractions. Parce
que les multiplications et les divisions en assembleurs pour des
operandes de tailles variables, c'est pas si simple que ca. (Le seul
endroit ou j'ai vu un algo decrit en detail pour la division, c'est
chez Knuth).
Effectivement, ce n'est pas simple. Ceci dit, et sans évoquer des jeux
bonjour,
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits.
probleme
: je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
Merci ;)
--
Rico
bonjour,
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits.
probleme
: je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
Merci ;)
--
Rico
bonjour,
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits.
probleme
: je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
Merci ;)
--
Rico
bonjour,
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. problemeje ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
Merci ;)
bonjour,
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. probleme
je ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
Merci ;)
bonjour,
J'ai besoin d'effectuer de opérations sur des entiers de 128 bits. problemeje ne sais pas manipuler de tels nombres.
Quelles sont les solutions envisageables ? (environement MS Visual C++ 6)
Merci ;)
bonjour,
il y a cette classe mais je ne sais pas ce qu'elle vaut
https://sourceforge.net/projects/cpp-bigint/
Merci a tous pour vos réponses très intéressantes ;)
bonjour,
il y a cette classe mais je ne sais pas ce qu'elle vaut
https://sourceforge.net/projects/cpp-bigint/
Merci a tous pour vos réponses très intéressantes ;)
bonjour,
il y a cette classe mais je ne sais pas ce qu'elle vaut
https://sourceforge.net/projects/cpp-bigint/
Merci a tous pour vos réponses très intéressantes ;)
"Pierre Maurette"
writes:C'est à mon sens un des cas, rares en vérité, où
l'assembleur, si on peut se l'autoriser, est efficace, mais
également plus lisible et moins générateur d'erreurs.
Je suppose que tu parles des additions et des soustractions.
Parce que les multiplications et les divisions en
assembleurs pour des operandes de tailles variables, c'est
pas si simple que ca. (Le seul endroit ou j'ai vu un algo
decrit en detail pour la division, c'est chez Knuth).
Effectivement, ce n'est pas simple. Ceci dit, et sans évoquer
des jeux d'instructions trop "spéciaux", on va trouver par
exemple des multiplications 32 * 32 -> 64 (64 * 64 -> 128 en
x86-64) ou des divisions 64 / 32 -> 32(quotient) + 32(reste),
et même (64 * 64 -> 128 et 128 / 64 -> 64 + 64 en x86-64) qui
positionnent les flags et vont aider. De plus, les algo
efficaces utilisent beaucoup d'additions et de soustractions.
Je reviens sur un détail. Sans utiliser d'assembleur, on peut
tenter (je me place dans un cas idéal): imaginons une
implémenation dans laquelle la taille naturelle de l'entier
est de 32 (ou 64) bits.
Imaginons que cette implémentation offre un entier de taille
double (64 ou 128). Les opérations sur ces entiers long seront
efficaces (on l'espère). On pourra alors baser nos grands
entiers sur des tableaux d'entiers "naturels" et effectuer les
opérations sur des entiers longs. Ce sera plus facile. Quand à
la vitesse, je n'en sais rien.
"Pierre Maurette"
<mmaauurreetttteeppiieerrrree@wwaannaaddoooo.ffrr> writes:
C'est à mon sens un des cas, rares en vérité, où
l'assembleur, si on peut se l'autoriser, est efficace, mais
également plus lisible et moins générateur d'erreurs.
Je suppose que tu parles des additions et des soustractions.
Parce que les multiplications et les divisions en
assembleurs pour des operandes de tailles variables, c'est
pas si simple que ca. (Le seul endroit ou j'ai vu un algo
decrit en detail pour la division, c'est chez Knuth).
Effectivement, ce n'est pas simple. Ceci dit, et sans évoquer
des jeux d'instructions trop "spéciaux", on va trouver par
exemple des multiplications 32 * 32 -> 64 (64 * 64 -> 128 en
x86-64) ou des divisions 64 / 32 -> 32(quotient) + 32(reste),
et même (64 * 64 -> 128 et 128 / 64 -> 64 + 64 en x86-64) qui
positionnent les flags et vont aider. De plus, les algo
efficaces utilisent beaucoup d'additions et de soustractions.
Je reviens sur un détail. Sans utiliser d'assembleur, on peut
tenter (je me place dans un cas idéal): imaginons une
implémenation dans laquelle la taille naturelle de l'entier
est de 32 (ou 64) bits.
Imaginons que cette implémentation offre un entier de taille
double (64 ou 128). Les opérations sur ces entiers long seront
efficaces (on l'espère). On pourra alors baser nos grands
entiers sur des tableaux d'entiers "naturels" et effectuer les
opérations sur des entiers longs. Ce sera plus facile. Quand à
la vitesse, je n'en sais rien.
"Pierre Maurette"
writes:C'est à mon sens un des cas, rares en vérité, où
l'assembleur, si on peut se l'autoriser, est efficace, mais
également plus lisible et moins générateur d'erreurs.
Je suppose que tu parles des additions et des soustractions.
Parce que les multiplications et les divisions en
assembleurs pour des operandes de tailles variables, c'est
pas si simple que ca. (Le seul endroit ou j'ai vu un algo
decrit en detail pour la division, c'est chez Knuth).
Effectivement, ce n'est pas simple. Ceci dit, et sans évoquer
des jeux d'instructions trop "spéciaux", on va trouver par
exemple des multiplications 32 * 32 -> 64 (64 * 64 -> 128 en
x86-64) ou des divisions 64 / 32 -> 32(quotient) + 32(reste),
et même (64 * 64 -> 128 et 128 / 64 -> 64 + 64 en x86-64) qui
positionnent les flags et vont aider. De plus, les algo
efficaces utilisent beaucoup d'additions et de soustractions.
Je reviens sur un détail. Sans utiliser d'assembleur, on peut
tenter (je me place dans un cas idéal): imaginons une
implémenation dans laquelle la taille naturelle de l'entier
est de 32 (ou 64) bits.
Imaginons que cette implémentation offre un entier de taille
double (64 ou 128). Les opérations sur ces entiers long seront
efficaces (on l'espère). On pourra alors baser nos grands
entiers sur des tableaux d'entiers "naturels" et effectuer les
opérations sur des entiers longs. Ce sera plus facile. Quand à
la vitesse, je n'en sais rien.