Si es como práctica, se me ocurre que conviertas a hexadecimal, tomes los valores ponderados, los conviertes a decimal int o short. ejemplo:
123458 ->1E242 HEX
A=2 *1 -->2
B=4 *16 -->64
C=2 *256 -->512
D=14 *4096 -->57344
E=1 *65536 -->65536
Tus valores serian 2,4,2,14,1. Para volver a armar el numero original multiplicarias por su valor de ponderacion.
Lo mismo en decimal:
123458:
a=8 *1 -->8
b=5 *10 -->50
c=4 *100 -->400
d=3 *1000 -->3000
e=2 *10000 -->20000
f=1 *100000 -->100000
con hexdecimal ocupas menos valores.
Muchas gracias, aunque ya lo había conseguido de otra manera.
Hola.
¿Cómo puedo hacer para poder tomar un número de tipo, long o double, por ejemplo, y guardarlo en variables de tipo primitivo más pequeño; es decir, repartir los 64 bits de un número entre, p. ej., dos int o cuatro shorts y después recuperalo a partir de éstos con el mismo tipo que tenía?
Si me lo pudieran explicar lo agradecería mucho.
Saludos :).