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.

91

Pour un nombre signé, ça change.
(-1)>>4 == -1
(-1)/16 == 0
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é

92

"Même" moi je le savais.
Arrêtez de chercher KK... c'est pueril. tongue (sans aucune ironie)

93

Laissez-moi rouvrir cette horreur..... ok. Alors non pourtant j'ai en partie des entiers signés (pour la vitesse entre autres, normal) et en partie des entiers non signés. M'enfin ça vient peut être de là, je sais pas. Par contre je remarque que je codais quand même sacrément horriblement à l'époque eek
//Retourne si oui ou non la coordonnée spécifiée est dans la zone décompressée
int coordValide(int coordX, int coordY)     {
   if (coordX>=((advMapOffsetX+3)<<9) || coordY>=((advMapOffsetY+3)<<9) || coordX<((advMapOffsetX-1)<<9) || coordY<((advMapOffsetY-1)<<9))
      return 0;
   else
      return 1;
}

D'ailleurs dans ce cas ça me ferait chier d'utiliser des entiers non signés parce que les coordonnées pourraient être négatives (le test échouera presque toujours dans ce cas si je me souviens bien). Alors oui je pourrais utiliser le fait qu'un nombre négatif interprété en non signé sera très grand donc le test échouera de toute façon mais je trouve ça moche sorry
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

94

95

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 Y'a des fois où t'as pas le choix...


On parlait de x8 par de /16.

96

Ok effectivement concernant le x8 c'est une connerie, j'ai rien dit. scotch
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)

Je parle bien des zones critiques où on fait des opérations bas niveau hein, comme par exemple plotter un pixel sur le framebuffer, le genre de trucs appelé des milliers de fois.
J'aime pas mélanger les trucs, par exemple si tu dois faire des multiplications et des divisions et que tu dois utiliser *8 dans un sens et >>3 dans l'autre parce que sinon tu perds 160 cycles, c'est pas plus compréhensible que <<3 et >>3...
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

97

Brunni (./96) :
tu dois utiliser *8 dans un sens et >>3 dans l'autre parce que sinon tu perds 160 cycles
Bah non, pour un entier non signé « / 8 » devrait être remplacé par « >> 3 ». Mais c'est vrai que pour la manipulation de mots de bits, je préfère la notation avec les « << » et « >> » qui a plus de sens.
avatar

98

J'ai jamais appris à utiliser strictement les bons types signés ou non, donc ça vient peut être de là. Sur TI je faisais très attention à la taille parce que les opérations sont très très lentes sur du 32 bits par exemple, mais sinon je les mets presque toujours signés parce que ça semble naturel dès qu'on interface avec l'utilisateur. Ca me semble trop space de se dire qu'il n'y a "rien" avant 0. En C (en C++ on devrait utiliser ces sick d'exceptions) je retourne souvent -1 pour signaler une erreur par exemple. Même mes variables de boucle sont signées alors que c'est vrai que ça n'a pas de sens. En plus t'as des milliers de warnings dès que tu commences à mélanger (et les casts rendent le tout illisible). En plus je me rappelle qu'avec mon compilo en mettant unsigned c'est parfois plus lent, va savoir pourquoi :/
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