Xavier a écrit :
Mais, ça apporte des problèmes de portage de basic en basic, car sur certaines machines:
10 C = 10 * (A AND B)
faux/vrai:
C=0 ou C=10 (Spectrum...)
C=0 ou C=-10 (Thomson)
En effet, mais si on remarque que le produit est vachement couteux sur les 8 bits, on a tout intéret à utiliser une 3eme forme d'écriture avec des and
ou, dans un basic chez qui VRAI=1,
Au niveau astuce pour que le basic THOMSON aille plus vite, il y a le fait que par défaut les variables basic sont des flottant. Donc quand on écrit A+B ou A*B ou même FOR I=0 TO 9, on réalise en fait des opérations sur des flottants, choses méchamment lentes même si on utilise que des valeurs entières. En théorie pour représenter une variable entières 16bits, il faut utiliser A% et B%, et donc utiliser A%+B% ou FOR I%=0 TO 9 ce qui devient vite fastidieux. Un truc vient alors en aide: la fonction DEFINT A-S, qui dit que toutes les variables qui commencent par une lettre entre A et S sont à traiter comme des entiers 16 bits qui sont infiniment plus rapides que des flottants. Les autres variable débutant par une lettre entre U et Z restent des flottants. Ainsi avec cette instruction les variables couramment utilisées comme indices entiers I,j,k,l,m sont des entiers et les x,y,z,t,u,v des flottants. C'est pas mal.
Sur thomson aussi pour accélérer les boucles on est pas non plus obligé de référencer les variables dans l'instruction NEXT:
est tout à fait acceptable (pas de I après le NEXT). Du coup le basic n'a pas besoin de vérifier que la variable du "next" est la même que celle du "for". C'est plus rapide!