Funciones mysql

Tengo otro problemilla y es que ahora debo crear una función o procedimiento que reciba un numero entero y retorne su equivalente a binario. Y otra que retorne el equivalente en hexadecimal . Intento hacerlo como se haría normalmente en programación pero a la hora de declarar un vector o array esta el problema ya que no tengo ni idea de como se hace en mysql esto es lo que tengo hasta ahora
delimiter //
drop function  if exists binario; //
create function binario(dividendo int)returns int
begin
 declare cociente integer;
 declare residuo  integer;
 declare resultado integer;
 declare i integer;
 declare vector[10] integer;
 while(dividendo>0)do
    cociente=dividendo/2;
    residuo=dividendo%2;
    dividendo=cociente;
    vector=residuo;
    set i:=i+1;
 end while;
 set i:=i-1;
 while(i>=0)do
 set resultado:=vector;
 set i:=i-1;
 return resultado
 end while;
  end; //
delimiter ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '[10];
        while(dividendo>0)do
        cociente=dividendo/2;
        residuo=dividend' at line 7
Que pena la molestia. Y si de pronto tienes algún código para hacerlo de entero a hexadecimal se lo agradecería todavía más igual gracias por la atención.

1 Respuesta

Respuesta
1
Es mejor que no te compliques la vida y uses las funciones propias de MySQL dispuestas para lo que necesitas. En concreto, pasar un numero a binario es tan fácil como lo siguiente:
SELECT BIN(4);
Por otro lado, existe la función CONV, que permite pasar un numero de una base a otra de la siguiente forma:
SELECT CONV(4, 10, 2) -> Pasar 4 de Decimal (Base 10) a Binario (Base 2)
SELECT CONV(4, 10, 16) -> Pasar 4 de Decimal (Base 10) a Hexadecimal (Base 16)
Como ves, es mucho más sencillo aprovechar la funcionalidad de MySQL.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas