Comunidad de diseño web y desarrollo en internet online

¿Cómo operar con números de más de 15 dígitos?

Citar            
MensajeEscrito el 02 Oct 2010 05:45 pm
Hola buenas Cristalab, pues eso, pregunta sencilla, cómo operar con números compuestos con más de 15 dígitos sin el típico error "Ye+X", jejeje.

Quería operar con números que superan esos dígitos y no puedo por ese motivo. ¿Alguien sabe alguna solución? Muchas gracias gentes.

P.D.: He probado también en PHP para exportar a AS, pero nada, da el mismo problema en PHP solo.

Por miglug

Claber

113 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 02 Oct 2010 09:23 pm
Por el lado de php depende de la plataforma, 32 bits y 64 bits ;) .

Seguro que en actionscript es similar.


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 02 Oct 2010 10:01 pm
Muchas gracia por responder tan rápido Maikel, pues no sabía eso de 32bits y 64bits, de hecho, no tengo ni idea de lo que es... Bueno, sé que son número de dígitos, o eso supongo, jeje. (Ahora estoy metiendo la pata tanto diciendo eso que hacéis una quedada los programadores profesionales y adelantáis San Juan para quemarme en la hoguera, jejeje).

Voy a buscar información sobre eso. Muchas gracias por responder Maikel.

Por miglug

Claber

113 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 02 Oct 2010 10:26 pm
Los bits en este caso se refieren a la cantidad de bits que se utilizan para representar el numero. La representación puede ser con o sin signo, en php todos los enteros tienen signos, y eso es un bit. Asi que php utiliza 31 bits para representar el numero y otro para el signo, hablando claro en plataforma de 32 bits.

Asi que en php en dicha plataforma los enteros van de -2147483648 a 2147483647. Esto se obtiene: 2 elevado a la 31, el otro bit es reservado para el signo.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 02 Oct 2010 11:04 pm
Lo que pensaba, al número de dígitos que comprenden uno real, jeje, muchas gracias por la explicación, porque anduve buscando por Google y no encuentro nada, más que "¡¡¡Nuevo procesador 64bits!!!" y va a ser que eso no es, jejeje. Intentaré obtener información sobre todo esto a ver si hay suerte y consigo lo que busco. Muchas gracias men, y si no encuentro pues ya me pasaré a dar la lata por aquí, jejeje. ¡Un saludo!

Por miglug

Claber

113 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 03 Oct 2010 06:32 pm
¡Buenas gentes! Estuve mirando información, y por casualidad experimenté un detalle que me rompió un cacho. Hice el siguiente código:

Código ActionScript :

stop();
var i:Array=new Array();
i[0]=64;
for(i[1]=0;i[1]<i[0];i[1]++){
   trace(i[1]+"bits = "+Math.pow(2,i[1]));
};

Por supuesto, el resultado no fue el esperado por lo que comentamos de los bits, pero sí debe tener algo que ver, observa el resultado:

0bits = 1
1bits = 2
2bits = 4
3bits = 8
4bits = 16
5bits = 32
6bits = 64
7bits = 128
8bits = 256
9bits = 512
10bits = 1024
11bits = 2048
12bits = 4096
13bits = 8192
14bits = 16384
15bits = 32768
16bits = 65536
17bits = 131072
18bits = 262144
19bits = 524288
20bits = 1048576
21bits = 2097152
22bits = 4194304
23bits = 8388608
24bits = 16777216
25bits = 33554432
26bits = 67108864
27bits = 134217728
28bits = 268435456
29bits = 536870912
30bits = 1073741824
31bits = 2147483648
32bits = 4294967296
33bits = 8589934592
34bits = 17179869184
35bits = 34359738368
36bits = 68719476736
37bits = 137438953472
38bits = 274877906944
39bits = 549755813888
40bits = 1099511627776
41bits = 2199023255552
42bits = 4398046511104
43bits = 8796093022208
44bits = 17592186044416
45bits = 35184372088832
46bits = 70368744177664
47bits = 140737488355328
48bits = 281474976710656
49bits = 562949953421312
50bits = 1.12589990684262e+15
51bits = 2.25179981368525e+15
52bits = 4.5035996273705e+15
53bits = 9.00719925474099e+15
54bits = 1.8014398509482e+16
55bits = 3.6028797018964e+16
56bits = 7.20575940379279e+16
57bits = 1.44115188075856e+17
58bits = 2.88230376151712e+17
59bits = 5.76460752303424e+17
60bits = 1.15292150460685e+18
61bits = 2.30584300921369e+18
62bits = 4.61168601842739e+18
63bits = 9.22337203685478e+18

La verdad, ando más perdido que un pulpo en un garage... ¿Alguien me puede ayudar? Muchas gracias Cristalab, y a Maikel por ayudarme con este tema.

Por miglug

Claber

113 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 03 Oct 2010 06:52 pm
Hice un nuevo experimento que da la vuelta a la tortilla... Lo publiqué en un POST que ya estaban usando este tema:

http://foros.cristalab.com/calculadora-en-actionscript-t18240/#571741

A ver si alguien llega a una conclusión y un resultado factible, jejeje. ¡Muchas gracias gentes!

Por miglug

Claber

113 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 03 Oct 2010 08:16 pm
wait, wait... Que no entiendes todavía?

bit = acronimo de digito binario. Sabemos que los binarios son número base 2, por lo que son puros 0 y 1. Todo bien hasta aqui, cierto?

Entonces:
32 bits: son 32 números binarios, por lo que es una secuencia de 32 de 0 y 1.
2 elevado cantidad de bit te da el máximo número en base decimal que se puede representar. Ojo que hablo de base decimal y no de flotantes!

base decimal: son los números que más conocemos porque son los que usamos en la vida cotidiana, es base 10 (de alli el decimal) y sus numeros estan formados por secuencias de 0,1,2,3,4,5,6,7,8,9 ( que si lo cuentas son 10)

En otras cosas lee esto: 32 bits

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 03 Oct 2010 08:58 pm

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 04 Oct 2010 07:00 am
¡¡Jobah Maikel!! Que curre te estoy largando, jajaja, muchísimas gracias por responder, y perdona mi ignorancia, aunque más que ignorancia, son despistes, se me fue la pinza vamos... Estaba pensando bit por dígito que compone un número. ¿Sabes? Y claro, me daba algo totalmente diferente, jejeje.

Por otro lado, si nos vamos a codificación binaria, me encuentro con otro problema que ya sabiendo todo esto, voy a buscar a ver si encuentro algo, pues claro, antes estaba buscando y no encontraba nada porque estaba buscando algo totalmente erróneo...

La duda que tengo es que si Flash usa este sistema para delimitar el número de dígitos que componen un número, lo digo porque no tiene relación con el número más pequeño o más grande que admite. Por ejemplo:

Si tenemos una posibilidad de 3bits, obtendríamos 8 números diferentes de elevar a 2 a 3. Eso es la explicación matemática. Yendo ahora a una explicación más convencional nos encontramos esto:

0 = 000
1 = 001
2 = 010
3 = 011
4 = 100
5 = 101
6 = 110
7 = 111

Pero la cosa es que Flash se quedara en 9 en este caso y no en 7. El valor máximo de Flash para una potencia de 2 es la siguiente, pero la que le precede es la máxima:

49bits = 562949953421312
999999999999999

Si a la segunda le sumamos uno. ¡Pum! Error. Iré mirando como arreglar esto y a ver si llego a alguna conclusión. Por otro lado no encuentro para Flash las precisiones matemáticas... En fin, yo en mí soy un problema, jejeje. Muchas gracias por la explicación men, cuando encuentre algo lo posteo. ¡Un saludo men!

Por miglug

Claber

113 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.