60

Ça dépend dans quel contexte :
Si c'est de la manipulation binaire : a <<8.
Si c'est de l'arithmétique, a*8.

Quant à a<<=8... sick J'ai dû le faire parfois, mais franchement c'est illisible...
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

61

Quelqu'un qui écrit des horreurs comme a = a << 3; ou a = a * 8; dans ses programmes est quelqu'un qui ne connaît pas le C. gni
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

62

sondage corrigé pour faire plaisir à kk.

63

Perso je fais ça a = a + a + a + a + a + a + a + a; cheeky
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

64

C'est lent non ?
Il ne vaut pas mieux faire :

a+= a;
a+= a;
a+= a;

?
Ce qui reste plus lent que a<<=3;
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

65

Une addition seule sera toujours plus lente qu'un décalage. Bref une opération arithmétique est plus lente que n'importe quelle opération logique.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

66

C'est faux. Une addition est plus rapide qu'un lsl #1, et 2 additions peuvent être plus rapides qu'un lsl #2 aussi. (En revanche, 3 additions sont toujours plus lentes qu'un lsl #3.)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

67

C'est faux. geogeo généralise sur l'ensemble des microprocesseurs, il parle pas du M68000.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

68

Ça ne change pas que son "toujours" est faux, étant donné que c'est faux pour le 68k. tongue
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

69

perso qqn qui me montre un <<3 pour un multiplié par 8, je dis que c'est un boulet.
Quand aux nombres non signés, ils sont parfois très mal géré par certains compilateur.
Enfin je pense pas que le résultat de la rom de ti soit critiquable pour le publique qu'elle vise -> ils ont fait le bon choix

70

71

Rien à voir (pour éviter de créer 100 topics), mais si quelqu'un voulait bien troquer une solution au problème du gars de chez TI contre son checkout CVS de CAS Software ça nous arrangerait cheeky http://discussions.apple.com/thread.jspa?messageID=5921727#5921727

72

73

Ximoon (./60) :
Ça dépend dans quel contexte :
Si c'est de la manipulation binaire : a <<8.
Si c'est de l'arithmétique, a*8.

Quant à a<<=8... sick J'ai dû le faire parfois, mais franchement c'est illisible...

Perso je fais:
//Multiplie par 8
a <<= 3;

Ca résoud les problèmes tongue
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

74

Ben ça sert vraiment à rien du coup parce que tu passes du temps à écrire un commentaire qui serait inutile si tu écrivais directement i = i * 8;
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

75

En fait c'est une question de vitesse. Par contre je suis d'accord que c'est plus long qu'écrire a = a << 3, mais comme c'est pas clair non plus je devrais de toute façon le commenter happy
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

76

Brunni (./73) :
Perso je fais:
//Multiplie par 8
a <<= 3;

Ca résoud les problèmes tongue

Ca je je trouve ça un peu dommage par contre. Rendez votre documentation exécutable ! (une macro ferait l'affaire en l'occurence)

77

Pourquoi rendre la documentation exécutable ? (pour permettre au développeur d'écrire à la fois du code et de la doc ?)
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

78

Pourquoi ne pas écrire x8 et laisser le compilateur savoir ce qui est le plus rapide ?

79

Parce que x8 n'est pas forcément remplacé par << 3, parce que c'est seulement dans certains cas que ça diffère, mais on sait lesquels et en l'occurence ça ne nous gène pas, il nous faut la solution la plus rapide.
M'enfin je suis d'accord avec vous, j'aime pas trop ce genre d'optimisations, parce que ça "scelle" le code pour modification / débogage futur. Donc j'évite sauf s'il faut vraiment des performances maximales et que c'est une section de code critique (et dans ce cas je commente, justement). En général je cherche plutôt à améliorer l'algorithmique si possible, mais parfois un algorithme vicieux, même commenté est plus compliqué à comprendre qu'un bon code asm tongue (même si c'est un peu tiré par les cheveux, je l'avoue)
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

80

asm: je ne me ferais jamais aux forums TI...
mais parfois un algorithme vicieux, même commenté est plus compliqué à comprendre qu'un bon code asm
Tant qu'il est beau...

81

Brunni (./79) :
Parce que x8 n'est pas forcément remplacé par << 3 parce que c'est seulement dans certains cas que ça diffère,

Quand est-ce que ca diffère ?

82

C'est pour >> que ça diffère.
avatar

83

Hum oui c'est vrai. Faudra que je vérifie à l'occas ce que fait GCC dans ces cas-là. M'enfin c'est un mauvais exemple, on pourrait prendre le modulo fait avec un AND aussi, le problème reste le même ^^
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

84

-> D'où l'intérêt de laisser le compilateur réaliser lui-même les bonnes optimisations (puisque tu te trompes et que ton code est moins lisible)
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

85

pencil

86

Sasume (./77) :
Pourquoi rendre la documentation exécutable ? (pour permettre au développeur d'écrire à la fois du code et de la doc ?)

Dans l'absolu pour être plus concis, éviter le code inutile et permettre au compilateur de valider la documentation, mais dans ce cas précis je pencil ./78.

87

Brunni (./73) :
Perso je fais:
//Multiplie par 8
a <<= 3;

AMHA, ce commentaire est tout aussi inutile que:
// Rajoute 1 à a
a++;

ou même:
// Rajoute 1 à a
a = a + 1;

gni

Tout le monde sait que <<=3 multiplie par 2³ et que 2³=8. tongue (Si on n'a pas ces connaissances de base des Mathématiques, on n'est pas capable de programmer correctement. tongue)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

88

Sasume (./84) :
-> D'où l'intérêt de laisser le compilateur réaliser lui-même les bonnes optimisations (puisque tu te trompes et que ton code est moins lisible)

Si je remplace les & 15 du moteur de collisions de mon Sonic par des % 16 ou pire les >> 4 par des / 16 je peux te jurer qu'il tourne *carrément* moins bien niveau vitesse, même si le résultat est exactement le même visuellement parce que je ne tombe jamais dans les cas limite... sorry
Y'a des fois où t'as pas le choix...
Et pour te répondre Kevin non c'est pas évident, surtout si ton algorithme est déjà pas simple à comprendre, on sait pas vraiment ce que t'es en train de faire...
De la même manière un ldrne pc, [r1, r0, lsl#2] est absolument évident (saut à r1[r0 * 4] si pas égal) autant sans commentaire ça m'est impossible de m'y retrouver moi-même dans mon code (qu'est-ce que j'ai foutu dans r1? ha j'ai fait aussi des calculs sur r0, c'est le résultat de quoi déjà? j'ai fait un adds avant, donc ça veut dire que ma condition c'est que le résultat d'avant soit pas nul...), alors j'imagine pas les autres qui n'ont pas l'algo en tête...
Le coup du ldr est un peu vicieux, mais le C peut être encore pire niveau lisibilité puisqu'on peut combiner ce genre d'opérations en une expression.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

89

Brunni (./88) :
Si je remplace les & 15 du moteur de collisions de mon Sonic par des % 16 ou pire les >> 4 par des / 16 je peux te jurer qu'il tourne *carrément* moins bien niveau vitesse, même si le résultat est exactement le même visuellement parce que je ne tombe jamais dans les cas limite... cst.gif
Tu utilises bien des entiers non signés ? Et avec les bonnes optimisations ?
avatar

90

+1 Thepro.
/16 -> >>4 ne devrait rien changer au code - ou alors, le compilo a besoin d'une amélioration grin
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.