1

if(( tbl_char[i]-= tbl_char[j])<0)
Comparaison is always false due to limited range of data type...
> Ok

if((short)(tbl_char [i]-=tbl_char [j]) < 0)
Comparaison is always false due to limited range of data type...
> Hum... Déjà moins Ok...

if((short)((short)tbl_char [i]-=(short)tbl_char [j])<0)
Comparaison is always false due to limited range of data type...
> Heu... Je suis sensé faire quoi pour qu'il arrete de me balancer un warning ???
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2

[i]if((signed char)(tbl_char -=tbl_char [j]) < 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é

3

the KK powergrin
"Scrutant profondément ces ténèbres, je me tins longtemps plein d'étonnement, de crainte, de doute..."
Edgar Allan Poe

4

Ben oui mais pkoi pas (short) ?
Jusqu'à preuve du contraire, les shorts sont signés par défaut sous TIGCC et vont donc de -32768 à 32767, donc la je ne comprend pas confus
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

Parce que la conversion préserve les valeurs si possible et que donc (short)(unsigned char)255 donne 255, alors que (signed char)(unsigned char)255 ou (short)(signed char)(unsigned char)255 donne -128.
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é

6

Ahhhhhh ok... Embetant ça... Parceque si ma valeur était à 200, je retire 10, ça fait 190, c'est à dire -62 en char... Et du coup ça sera détecté comme inferieur à zéro sad
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

7

Ah, ce que tu veux, c'est détecter un débordement lors de la soustraction... Bon, dans ce cas, tu ferais mieux de passer à l'assembleur, c'est tout bête en assembleur.

En C:
[i]short temp;
temp=(short)tbl_char[i]-(short)tbl_char[j];
tbl_char=temp;
if (temp<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é

8

Post non terminé confus
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

9

Non, il est terminé. Je me suis arrêté au if parce que tes extraits (d'une ligne) se sont également arrêtés au if.
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é

10

Ah... Parceque :
Bon, dans ce cas, tu ferais mieux de passer à l'assembleur, c'est tout bête en assembleur.

Et puis à la ligne d'en dessous :
En C:

grin

Donc il n'y a pas moyen de faire ça en une ligne, il faut obigatoirement passer par une autre valeur... Bien, merci smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

11

Ce que je voulais dire, c'est qu'en assembleur, tu aurais quelque chose du genre:
[i]sub.b tbl_char(%pc,%d1:w),tbl_char(%pc,%d0:w) |tbl_char-= tbl_char[j]
bcc ok |carry clear = pas de débordement
|code en cas de débordement de la soustraction
ok:

donc pas besoin de variable intermédiaire. Mais tu ne peux pas exprimer cela en C.
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é

12

ah... mouais bon c pas trop grave, 3 lignes de plus... smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

13

Kevin Kofler
a écrit : donc pas besoin de variable intermédiaire. Mais tu ne peux pas exprimer cela en C.

if ((tbl_char[i] = (short)tbl_char[i] - (short)tbl_char[j]) < 0)
Ça ne marchera pas?

14

Non, ça tronque la valeur avant la comparaison.
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é