PDA

Ver la Versión Completa : Numero hexadecimal de 32 caracteres


adebonis
15-11-2007, 07:21:10
Hola.

Necesito generar un numero aleatorio exadecimal que ocupe 32 posiciones.

¿Alguna idea?. Gracias.

Adolfo Bonis
Barcelona

basti
15-11-2007, 14:04:48
Si lo vas a usar como número (hacer operaciones matemáticas), lo veo difícil, ya que sería un número de 32x16 = 512 bits, y no hay ningún tipo de dato que guarde esto. Tendrías que hacer tus propias rutinas matemáticas.

Si sólo es para generarlo y mostrarlo o guardarlo:

numero := '';
for i := 1 to 32 do
numero := numero + format('%x', random(16));

ixMike
15-11-2007, 15:11:14
Bon día.

¿32 carácteres, 32 posiciones, o 32 números?

Si en hexadecimal ocupa 32 carácteres, necesitas un número de 32x4=128bits (cuatro Integers, o dos Int64). Si con 32 posiciones te refieres a 32 bits, pues Integer (longint).

Para pasar un número a hexadecimal, utiliza la función IntToHex(Número, Carácteres). Devuelve directamente un string.

Para calcular un número aleatorio, utiliza la función random que ya te han enseñado. Para cambiar la "aleatoriedad", cambia el valor de la variable RandSeed (tipo Integer, al menos en mi versión de Delphi).


Saludos.