Comunidad Game Maker

Ayuda => Desarrollo de Scripts => Mensaje iniciado por: bygdle en Abril 25, 2016, 02:01:13 AM

Título: Conversión de números ( decimal, binario y hexadecimal )
Publicado por: bygdle en Abril 25, 2016, 02:01:13 AM
Autor: NiuWeb
Versión de GM utilizada:  :GMS: Studio 1.4
Descripción: Conjunto de scripts para poder convertir de un número decimal a un binario y a un hexadecimal, y de un número binario o hexadecimal (a modo de cadena) a un número real.

Código:

Decimal a binario
[gml]
///dec_to_bin(dec);
var dec, bin;
dec = argument0;
bin = "";
while(dec > 0)
{
    bin = string(dec mod 2) + bin;
    dec = dec div 2;
}
return bin;
[/gml]
Su único argumento es el número decimal a convertir. Devuelve una cadena con el número binario.

Binario a decimal
[gml]
///bin_to_dec(bin);
var bin, len, dec;
bin = string(argument0);
len = string_length(bin);
dec = 0;

var i;
for(i = len; i >= 1; i--)
{
    dec += power(2, len - i) * real(string_char_at(bin, i));
}
return dec;
[/gml]
Su único argumento es el número binario (a modo de cadena) a convertir. Devuelve un número real.

Decimal a hexadecimal
[gml]
///dec_to_hex(dec);
var base, dec, bin;
base = "0123456789ABCDEF";
dec  = argument0;
bin  = "";
while(dec > 0)
{
    bin = string_char_at(base, (dec mod 16) + 1) + bin;
    dec = dec div 16;
}
return bin;
[/gml]
Su único argumento es el número decimal a convertir. Devuelve una cadena con el número hexadecimal.

Hexadecimal a decimal
[gml]
///hex_to_dec(hex);
var base, hex, len, dec;
base = "0123456789ABCDEF";
hex  = string(argument0);
len  = string_length(hex);
dec  = 0;

var i;
for(i = len; i >= 1; i--)
{
    dec += power(16, len - i) * (string_pos(string_char_at(hex, i), base) - 1);
}
return dec;
[/gml]
Su único argumento es el número hexadecimal (a modo de cadena) a convertir. Devuelve un número real.

Espero que le pueda ser de utilidad a alguien :D

EDIT: Scripts optimizados.
Título: Re:Conversión de números ( decimal <-> binario <-> hexadecimal )
Publicado por: VisualGames en Abril 25, 2016, 07:02:25 PM
Pos creo que me va a servir en unos años jeje ¿en que curso/año escolar te pasaron lo de hexadecimal???
Título: Re:Conversión de números ( decimal <-> binario <-> hexadecimal )
Publicado por: bygdle en Abril 25, 2016, 09:53:35 PM
Cita de: VisualGames en Abril 25, 2016, 07:02:25 PM
Pos creo que me va a servir en unos años jeje ¿en que curso/año escolar te pasaron lo de hexadecimal???
En ninguno (hasta el momento), lo aprendí leyendo en internet.
Título: Re:Conversión de números ( decimal <-> binario <-> hexadecimal )
Publicado por: VisualGames en Abril 26, 2016, 12:23:37 AM
A ok :v