[Maple] Convertir nombre à virgule en hexadécimal

Convertir nombre à virgule en hexadécimal [Maple] - Divers - Programmation

Marsh Posté le 03-12-2010 à 23:10:17    

Bonjour,
 
J'ai écrit une procédure qui convertit dans toutes les bases (décimal, binaire, octal et hexadécimal. Mais quand j'entre un nombre à virgule pour le convertir en hexadécimal, j'ai une erreur du genre :
 
Error, invalid input: convert/hex:-ModuleApply expects its 1st argument, n, to be of type nonnegint, but received 45.66
 
Le nombre entré doit être non négatif et entier selon le message, mais y a t'il moyen d'arriver à convertir en hexadécimal avec un nombre à virgule dans une des autres bases?
 
Merci d'avance

Reply

Marsh Posté le 03-12-2010 à 23:10:17   

Reply

Marsh Posté le 03-12-2010 à 23:16:41    

peut etre que la réponse à ta question se trouve dans la procédure que tu as écrit,non?

Reply

Marsh Posté le 04-12-2010 à 00:04:01    

Bonjour,
 
Non je ne pense pas
 
operation:=proc(n1::list,n2::list,operateur::string,base::integer) local d,i,j,k,signe,n,PremierNombre,m,DeuxiemeNombre,rep,reponse:
>  n:=n1[1] : m : = n1 [2] : i : = n2 [1] : j : = n2 [2] : signe : = operateur:
>  if (i<10) then PremierNombre:=convert(n,decimal,i) else PremierNombre:= n end if:
>  if (j<10) then DeuxiemeNombre:=convert(m,decimal,j) else DeuxiemeNombre:= m end if:
>  if (signe= "+" ) then reponse:= PremierNombre+DeuxiemeNombre; end if:
>  if (signe= "-" ) then reponse:= PremierNombre-DeuxiemeNombre; end if:
>  if (signe= "*" ) then reponse:= PremierNombre*DeuxiemeNombre; end if:
>  if (signe= "/" ) then reponse:= evalf(PremierNombre/DeuxiemeNombre); end if:
>  if (base=10) then d:=reponse:end if:
>  if (base=2) then d:=convert(reponse,binary):
>   end if:
>  if(base=8) then d:=convert(reponse,octal):
>   end if:
>  if(base=16) then d:=convert(reponse,hex):
>   end if:  
>  print (réponse = d):
>  end;
 
J'ai le message d'erreur quand j'essaie de convertir un nombre à virgule en hexadécimal


Message édité par roud9 le 04-12-2010 à 00:05:11
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed