Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la
charte
sera déplacé, modifié, ou supprimé par nos
modérateurs
.
Forum Langages
»
C & Cie.
»
Nombres sur 2048 bits...
[ 1 / 2 ]
Page suivante >>
kod128
ProgBoarder
Windows XP
Firefox - Posté le 09/09/2006 à 23:43
Existe-t-il un moyen simple et optimisé de manipuler des nombres de 256 octets (2^2048 maximum donc). J'ai juste besoin de faire les opérations +, -, /, *. Il me les faudrais le plus optimisé possible, et le plus petit possible (niveau taille du code). C'est ultra important.
Merci d'avance.
Francesco
Modérateur
Linux
Firefox - Posté le 10/09/2006 à 01:22
Les nombres que tu souhaite manipuler se sont des entiers ? signé ou non ?
Si oui, l'addition et la soustraction ne pose pas trop de problème, la multiplication un peu plus corriace, sans parler de la bête noire qu'est la division.
Pour l'optimisation, les instructions MMX me paraissent difficilement utilisables.
En quel langage aussi ? C ? C++ ? autre ?
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
kod128
ProgBoarder
Windows XP
Firefox - Posté le 10/09/2006 à 10:47
Je pense l'utiliser en C. Sinon ce sont des entiers non signés que je manipulerais.
Francesco
Modérateur
Linux
Firefox - Posté le 10/09/2006 à 13:55
je viens de voir relire tes exigences, plus petits possibles. En assembleur, ce serait le mieux, pour les additions et les soustractions, (intructions ADC 'Add With Carry', et SBS 'Substract with Borrow').
Enfin, bien sur, si les instructions en asm sont autorisés, et à condition que le code ne soit que pour une architecture précise, car le code ne sera alors plus portable...
Edité par Francesco ( 10/09/2006 13:57:28 )
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
kod128
ProgBoarder
Windows XP
Firefox - Posté le 10/09/2006 à 19:53
Malheureusement je ne m'y connais pas beaucoup en asm x86 (j'ai juste quelques bases). L'architecture sera que du x86 donc pas de problème de portabilitée.
Je vais faire quelques recherches.
Pour la multiplication, je pense avoire ma petite idée : avec des décalages de bits.
Freem
Modérateur
Windows XP
Firefox - Posté le 16/09/2006 à 15:31
Ce truc ne fonctionne que dans le cas des multiples de deux....
Il va falloir que tu trouves autre chose pour les autres cas.
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
Poly Progr@ms
Guest Star
Linux
Firefox - Posté le 16/09/2006 à 22:33
Multiple ou puissance de 2 ?
Freem
Modérateur
Windows XP
Firefox - Posté le 22/09/2006 à 17:53
Puissances de deux... Désolé, je me suis pas relu
Merci, PolyProgr@ms.
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
kod128
ProgBoarder
Windows XP
Firefox - Posté le 24/09/2006 à 14:32
Je me penche sur une méthode avec ADS et SBS. Je pense que je peu l'utiliser pour faire des calcules sur des "morceaux de nombre" de 32bits.
Francesco
Modérateur
Windows XP
Firefox - Posté le 29/09/2006 à 10:45
oui tout à fait. Par contre, pour la multiplication et la division, c'est un peu plus compliqué, et je ne crois pas qu'il existe des moyens simples pour y parvenir...
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
zuzuf
ProgBoarder
Linux
Firefox - Posté le 01/10/2006 à 13:26
pour la multiplication et la division, il n'y a pas 36 solutions, tu découpe ton nombre en entiers 32 bits (ou 64 bits si disponible) et tu effectue les opérations avec des entiers codés en base 2^32 (ou 2^64) avec les algorithmes classiques. Mais il y a quand même une question que je me pose:
à priori tu va devoir les afficher ces nombres... en hexadécimal
parce qu'en hexadécimal un nombre codé sur 256 octets ça prend 512 chiffres!!!
Linux a un noyau, windows un pepin
[ 1 / 2 ]
Page suivante >>
Poster une réponse
Message
Formatage
Note: pour partager du code source, merci d'utiliser le
wall
!
Smileys
Pseudonyme
Recopiez le code
v6 ©
Computaid SPRL
2005-2008 - Tous droits réservés -
Hébergé par eTigris
- Page générée en 0,056 s -
Crédits
-
Stats
Forums
ProgBoards » Annonces
ProgBoards » Développement
ProgBoards » Café
ProgBoards » Petites annonces
Informatique » Algorithmes
Informatique » Logiciel
Informatique » Matériel
Informatique » Graphisme
Informatique » Sécurité
Langages » BASIC
Langages » Pascal / Delphi
Langages » C & Cie.
Langages » Assembleur
Langages » Java
Langages » Autres Langages
Langages » Bibliothèques
Web » HTML / XML
Web » PHP / ASP
Web » Flash & Autres
Groupes de travail » FlexProject
Groupes de travail » Kovu (Bot IRC)
Groupes de travail » PHPMonitoring
Documentation » Linux / Unix
Documentation » ProgBoards
Documentation » QBasic
Documentation » C & Cie.
Ecologie » Solaire
Ecologie » Transport
Liste des forums
Membres
Inscrivez-vous
Mot de passe perdu?
Liste des membres
Groupes
Liste des groupes
Projets
Liste des projets
Logithèque
Les logiciels libres
Outils
Wall (codes sources)
Timestamp Unix
Interrogation whois
Goodies
T'chat IRC
#progboards (2)
Quotes IRC
1