Comunidad de diseño web y desarrollo en internet online

Error con string que empieza por cero

Citar            
MensajeEscrito el 13 Mar 2009 04:37 pm
buenos familia ya solucione el lio pero aqui le sdejo la inquietud para que vea algo que para mi es raro, tengo el siguiente codigo

Código HTML :

<script type="text/javascript">
function subiracarro(a){
   alert('-'+a+'-');
}
</script>

<a href="#" onclick="subiracarro(<? echo 0100000000?> )">agregar</a>


con mozilla le doy Ctrl+U y vean que genera:

Código HTML :

<script type="text/javascript">

function subiracarro(a){
   alert('-'+a+'-');
}
</script>

<a href="#" onclick="subiracarro(16777216 )">agregar</a>

Por esto el alert al hacer click mostrara -16777216-

Ahora bien la explicacion de la obvia duda:


  1. En teoria si estoy haciendo echo de un digito, numero, int, "como lo quieran llamar" eso me imprimiria el numero
  2. Si le ingreso un digito, numero, int, etc a una funcion en javascript deberia tomar el numero


entonces porque cuando le asigno el digito desde el onClick() no lo toma como numero y en su defecto genera otro digito :?

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 15 Mar 2009 12:18 pm
Hola jpcw, cuando antepones un 0 antes de cualquier numero el compilador sintactico lo reconoce como un numero octal.

Por tanto:

0100000000 Base 8 es igual a 16777216 base 10.

Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 15 Mar 2009 11:38 pm

LongeVie escribió:

Hola jpcw, cuando antepones un 0 antes de cualquier numero el compilador sintactico lo reconoce como un numero octal.

Por tanto:

0100000000 Base 8 es igual a 16777216 base 10.

Suerte.


en efecto hace eso!, la cuestion es que no es comun usar numeros octales!!! es mas no creo que sea coerente a noser qu etengas una calculadora de octales !!!! por esto mismo es un error que tiene el compilador!

U_U

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 16 Mar 2009 04:48 am
No es un error, es una cualidad, 0x000000 para exadecimales, 07 para octales, a nivel de bits es lo mas adecuado, amenos a mi me era muy util cuando programaba en c++ y php esta basado en c++ es logico que herede eso.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 16 Mar 2009 03:45 pm
ok acepto que no sea un error, es mas una tipificacion de datos por defecto que no es gritada a los cuatro vientos
pero......

LongeVie escribió:

a nivel de bits es lo mas adecuado

Es adecuado para ???? que :?

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 16 Mar 2009 09:18 pm
Adecuado para representar una cadena de bits, es mas facil en octal cuando es una triada y cuando es un cuarteto con un numero hexadecimial, incluso con octales es mucho mas facil ya que ves un numero octal e inmediatamente identificas su valor binario 72523 = 111 010 101 010 011, asi hacer operaciones como AND OR XOR incluso testear el desbordamiento o los flags por ejemplo, con octales o con hexadecimales es muy facil. hacerlo con el sistema decimal es una mentada... :P bueno almenos eso era en c, ahora ya la vida es mas facil y los octales son menos utiles que un numero hexadecimal, pero bueno, son las raices de c. Me recuerda esa vez que Dano publico un bug con Date que luego confundieron con un Bug en Number. luego se dieron cuenta que no era un bug. Dano menciono que para el manejo de fechas, 01 09 2009 se suele usar un cero para dos digitos cosa que el compilador interpreta como octal y entonces entra en conflicto con el sentido común, yo pienso que conocer tu compilador es una ventaja.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 16 Mar 2009 09:30 pm

LongeVie escribió:

Adecuado para representar una cadena de bits, es mas facil en octal cuando es una triada y cuando es un cuarteto con un numero hexadecimial, incluso con octales es mucho mas facil ya que ves un numero octal e inmediatamente identificas su valor binario 72523 = 111 010 101 010 011, asi hacer operaciones como AND OR XOR incluso testear el desbordamiento o los flags por ejemplo, con octales o con hexadecimales es muy facil. hacerlo con el sistema decimal es una mentada... :P bueno almenos eso era en c, ahora ya la vida es mas facil y los octales son menos utiles que un numero hexadecimal, pero bueno, son las raices de c. Me recuerda esa vez que Dano publico un bug con Date que luego confundieron con un Bug en Number. luego se dieron cuenta que no era un bug. Dano menciono que para el manejo de fechas, 01 09 2009 se suele usar un cero para dos digitos cosa que el compilador interpreta como octal y entonces entra en conflicto con el sentido común, yo pienso que conocer tu compilador es una ventaja.


Creo que si fuera tan util seguir a tan bajo nivel, todos aqui estariamos programando en debug o assembler!!!!, la verdad no comparto tu ponencia hacerca del maravilloso mundo de los numeros binarios, octales , decimales y hexadecimales, por otra parte si por javascript estuviese programando un micro procesador o algo similar veria utilidad a las operaciones y tendria un gran libro de las leyes de morgan!

U_U

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 16 Mar 2009 09:49 pm

LongeVie escribió:

bueno almenos eso era en c, ahora ya la vida es mas facil y los octales son menos utiles que un numero hexadecimal, pero bueno, son las raices de c


U_U estoy completamente a favor del sentido comun, incluso el lenguaje de programacion que mas me ha gustado es prolog, ahi nunca veras un octal; te brinde mi experiencia en este caso porque creo que el creo antes de un digito no es un error, es mas bien es una herencia; una herencia que estaria a favor de alguna inciativa que le suprima, o modifique por un sistema que no dependa de una estructura del lenguaje para obtener un octal. los hexadecimales son utiles para representar colores y son inconfundibles 0x. los octales se contraponen al lenguaje natural, pero no bueno. jpcw la definicion de "error de compilador" es una aseveración grave que no comparto, no quiciera que programaras un pic en assembler con un set de 15 instrucciones para orientar una camara de seguridad a un sonido adyacente(algo increiblemente util aun en estos tiempos) para que tomaras parte de mi opinión, solo explico porque no es un "error de compilador".

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 17 Mar 2009 12:44 am

LongeVie escribió:

incluso el lenguaje de programacion que mas me ha gustado es prolog,

Tenes toda la razon es el mejor es(prolog,exelente);

LongeVie escribió:

solo explico porque no es un "error de compilador".

ok, acepto que no es un error, simplemente diria que su uso directo no me es claro.

Saludos :meditar:

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 17 Mar 2009 12:52 am

jpcw escribió:

LongeVie escribió:

incluso el lenguaje de programacion que mas me ha gustado es prolog,

Tenes toda la razon es el mejor es(prolog,exelente);

LongeVie escribió:

solo explico porque no es un "error de compilador".

ok, acepto que no es un error, simplemente diria que su uso directo no me es claro.

Saludos :meditar:


:D bueno pues si, casi no se usa para nada, en php solo lo he usado para el chmod. y unicamente. de ahi en fuera, creo que no. :?

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 17 Mar 2009 04:40 am

LongeVie escribió:

:D bueno pues si, casi no se usa para nada, en php solo lo he usado para el chmod. y unicamente. de ahi en fuera, creo que no. :?


Algo adicional es que contrasta la tipificacion de datos entre php que es totalmente abierto y la de javascript que tiene sus herencias... como esta! :crap:

y bueno la solucion ante este gran lio es usar comillas sencillas ;) y vuala toma el dato con los ceros por delante y se lo podes enviar al PHP por ajax sin perder el formato ;) (y)

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox

 

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