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.
Pos creo que me va a servir en unos años jeje ¿en que curso/año escolar te pasaron lo de hexadecimal???
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.
A ok :v