1

vala,
ce ptit prog vous sort la version shiftée d'une multiplication ou division:
#include <stdio.h>
#include <conio.h>

#define abso(X) (X>0?X:-X)

void main()
{
int i;
char *var="variable",op,*shift="<<";
int num,roll[]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304};
clrscr();
printf("operation a faire?(VAR * NB ou VAR / NB):")
scanf("%s %c %d",var,&op,&num);
if(op=='/')shift=">>";
while(num)
{
 for(i=0;i<22;i++)
  {
	if(abso(num)==roll[i])
	{
	 //printf("%d est egal … %d",num,roll[i]);
	 if(num>0)
		{
		 num-=roll[i];
		 printf("+(%s%s%d)",var,shift,i);
		}
		else
		{
		 num+=roll[i];
		 printf("-(%s%s%d)",var,shift,i);
		}
	 break;

	}
	if((abso(num)>roll[i])&&(abso(num)<roll[i+1]))
	{
	 //printf("non est bien entre %d  et %d",roll[i],roll[i+1]);
	 if((roll[i+1]-abso(num))>(roll[i]-abso(num)))
	 {
		//printf("n%d est plus pres",roll[i+1]);
		if(num>0)
		{
		 num-=roll[i+1];
		 printf("+(%s%s%d)",var,shift,i+1);
		}
		else
		{
		 num+=roll[i+1];
		 printf("-(%s%s%d)",var,shift,i+1);
		}
	 }
	 else
	 {
		//printf("n%d est plus pres",roll[i]);
		if(num>0)
		{
		 num-=roll[i];
		 printf("+(%s%s%d)",var,shift,i);
		}
		else
		{
		 num+=roll[i];
		 printf("-(%s%s%d)",var,shift,i);
		}
	 }
	 }
	}
}
getch();
}
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

2

Et tu as besoin d'un programme pour ça? Taper ln(n)/ln(2) sur TI-89/92+ suffit. grin

Et pour les petites puissances de 2, tu devrais les connaître par cœur.
[edit]Edité par Kevin Kofler le 18-01-2002 à 02:58:23[/edit]
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

ça te sert à quoi ???
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

4

ba janjan2 s'emmerdait, donc il l'a fait...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

5

oué. c pas mal qd meme wink

6

pardon?
mon truc te sort par exemple
en entrée: var*30
en sortie: +(var<<5)-(var<<1)
j'ai pas encore fait les ln ni les log c'est pour çatsss
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

7

> +(var<<5)-(var<<1)

Ah, ça, c'est quand-même utile (même si un bon mathématicien n'en a pas besoin grin).
Je pensais que ça se limitait à me proposer var<<5 pour var*32.
Mais la décomposition de quelque chose de style var*30 est déjà moins évidente.
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

yep, si je comprends bien, tu me prends pour une daubetonguegrin
meme si t'es bon mathematicien, ce prog trouve roujours la solution la plus proche!
(ben oui, c'est un ordi)
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

9

kevin: heu:
var<<5-(var+var);

ca devrai etre plus rapide....
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

10

ah yes!
phoque je prenne ça en compte!
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

11

hu² grin
:D

12

>en entrée: var*30
>en sortie: +(var<<5)-(var<<1)
Normalement, gcc devrait le faire tout seul. M'enfin, un gcc s'est parfois strange.

13

je savais pas que gcc le fesais tt seul!
(c'est ptetre qd meme utile aux programmeurs en asm)
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

14

>en entrée: var*30
>en sortie: +(var<<5)-(var<<1)

ah ? c bien mais ça serait mieux, ça
>en sortie: +(var<<5)-(var+var)
on gagne 2 cycles et un registre
:D

15

Moi, je propose:
(var<<5)-var-var
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é

16

ben
add d0,d0
sub d0,d2
c pareil que
sub d0,d2
sub d0,d2
:D

17

Ce n'est pas pareil, ça détruit d0.
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é

18

meu non c pareil, car d0 dans mon cas existe, et on risque plus de s'en servir, mais bon, éventuellement, oui, ta méthode est un quart de poil mieux
:D