calculatrice > processeur ????? - Programmation
Marsh Posté le 16-10-2001 à 21:12:13
une calculatrice est généralement orientée BCD, un cpu binaire pur.
bin faire des additions/sustractions largement supérieurs aux registres du cpu est très facile, fo juste passer par la carry.
mais les multiplications/divisions c'est une autre paire de manche.
Marsh Posté le 16-10-2001 à 21:25:41
mais c koi carry ?
en fait, moi je fais juste un peu de Visual Basic mais je ne m'étais jamais posé la question de surmonter les overflows ...
donc concrètement, je fais comment ?
Marsh Posté le 16-10-2001 à 21:27:04
Ben tu codes toi même les opérations arithmétiques sur des grands nombres (exo classique de prog)
Marsh Posté le 16-10-2001 à 21:28:25
mais oui ! j'y ai pensé à ça ! mais il faut bien définir un type pour les variables
Marsh Posté le 17-10-2001 à 07:54:22
Je ferais ça en objet..
Dans une classe, tu définis ton type de 16 octets avec deux membres private de 8 octets, et tu surcharge les opérateurs
+, - / et *
Marsh Posté le 17-10-2001 à 07:58:53
bjone a écrit a écrit : une calculatrice est généralement orientée BCD, un cpu binaire pur. bin faire des additions/sustractions largement supérieurs aux registres du cpu est très facile, fo juste passer par la carry. mais les multiplications/divisions c'est une autre paire de manche. |
heu pour info la ti89 elle a un motorola 6800 qui n'est pas du tout orienté pour le calcul binaire...
Marsh Posté le 17-10-2001 à 09:49:46
voilà, j'ai une TI89 et j'arrive à faire des calculs plus importants que sur un PC ... Comment on fait pour gérer des nombres de plus de 8 octets ????
bjone
Et si tu ne faisais rien de special mais utilisais simplement les types les plus longs genre double ???
dim i as double type 64 bits
Marsh Posté le 17-10-2001 à 09:57:54
ben chais po, ça dépends ce qu'il entends pas 8 octets le monsieur
Marsh Posté le 17-10-2001 à 13:47:50
La 89 a un motorola 68000 (68k pour les intimes)
cadencé à 12MHz pour les HW2 et 10 pour les HW1.
Marsh Posté le 17-10-2001 à 21:15:34
idées...
je viens de penser à un truc carrément différent..
si jamais on définit des variables string (255 caractères), on peut leur faire porter des 1 et des 0. il suffit alors de les mettre bout à bout. mais après pour les opérations, c plus compliqué
sinon, comment on fait pour créer un type en visual basic ?
Marsh Posté le 18-10-2001 à 02:16:30
couitchy a écrit a écrit : idées... je viens de penser à un truc carrément différent.. si jamais on définit des variables string (255 caractères), on peut leur faire porter des 1 et des 0. il suffit alors de les mettre bout à bout. mais après pour les opérations, c plus compliqué sinon, comment on fait pour créer un type en visual basic ? |
je crois que comme ça, ça va pas le faire...
On peut prendre une liste chaînée d'entiers , et après il faut définir les opérations sur ces deux listes.
Pour écrire les opérations, on fait comme avec les nombres décimaux, sauf qu'on est en base 2^32
Marsh Posté le 18-10-2001 à 10:19:19
[Mode Nostalgie ON]
je me rappelle j'avais comme sujet de projet en premiere annee de DUT : 'Les grands entiers : developpez a l'aide de chaines de caracteres une classe GrandEntier qui proposera les 4 operations +,-,*,/'
C vieux mais ke de souvenirs
[Mode Nostalgie OFF]
Marsh Posté le 18-10-2001 à 21:22:08
evode a écrit a écrit : [Mode Nostalgie ON] je me rappelle j'avais comme sujet de projet en premiere annee de DUT : 'Les grands entiers : developpez a l'aide de chaines de caracteres une classe GrandEntier qui proposera les 4 operations +,-,*,/' C vieux mais ke de souvenirs [Mode Nostalgie OFF] |
Ca m'intéresserait VRAIMENT d'avoir la correction ...
Marsh Posté le 19-10-2001 à 14:35:25
couitchy a écrit a écrit : Ca m'intéresserait VRAIMENT d'avoir la correction ... |
moi aussi !
Marsh Posté le 19-10-2001 à 17:48:09
stalker a écrit a écrit : heu pour info la ti89 elle a un motorola 6800 qui n'est pas du tout orienté pour le calcul binaire... |
Il est evident que si tu changes la representation des donnees, il faut egalement redefinir les operations de base ... il suffit donc d'ecrire les routines + - / * en BCD, et c'est tout. Pas besoin d'un CPU dedie : les fonctions qui manquent a ton CPU, tu les programme et basta. Par exemple, la "predecesseuse" de la TI89, la TI85, etait dotee d'un Z80 dans lequel la multiplication n'etait meme pas codee ... et pourtant ma TI85 savait multiplier
Marsh Posté le 16-10-2001 à 21:10:08
voilà, j'ai une TI89 et j'arrive à faire des calculs plus importants que sur un PC ... Comment on fait pour gérer des nombres de plus de 8 octets ????
Merci