«El último segundo representable con este formato será a las 03:14:07 UTC del 19 de enero de 2038, cuando el contador llegue a 2147483647. Un segundo después, el contador se desbordará, y saltará al valor -2147483648, que causará el fallo de programas que interpretarán el tiempo como que están en 1901 ó 1970 (dependiendo de la implementación), en vez de 2038.»
ahem ahem friki ahem
<opinion> Moore mola, pero para las CPU's de casa y tal, no para los entornos especializados. </opinion>
a quien se le ocurrió usar un contador con signo para implementar esto ?
PD: ¿Y tú estás en la FIB, mangurrián? xD
#27 yo soy Einstein y tú eres tonto directamente. La máquina usa restas para comparar. Que tú no lo sepas, no es mi problema (ni el de Einstein)
Los que sepan de qué va el complemento a 2 sabrán que los números positivos y los equivalentes sin signo son iguales en binario.
En ensamblador/lenguaje máquina, hay instrucciones para comparar enteros, lo que ya no sé es si lo que hacen es restar los números o no.
Sí, la circuitería del procesador usa restas para comparar. El ensamblador sigue siendo una abstracción (de las de más bajo nivel, claro)
Lo hagan restando o no, lo que se necesita es un signo para saber cual de los dos enteros que se comparan es el mayor.
Ya, eso es lo que tenemos ahora, aprovechamos el bit de signo del complemento a dos para comparar.
Y para hacer esto, no se necesita que los dos enteros a comparar tengan signo.
Y si restamos peras y manzanas obtenemos plátanos. O podemos restar peras y peras, manzanas y manzanas, plátanos y plátanos...
Estoy de acuerdo en que restando dos enteros sin signo, no se puede comparar fechas pues el resultado de la resta siempre es un entero sin signo.
Pero se puede comparar sin restar, no nos hace falta la diferencia entre los dos, solo cual es mayor. Eso se hace en los lenguajes de alto nivel, en lenguaje máquina o en ensamblador. No hace falta cast ni nada parecido.
Joder, me recuerdas a Ana Botella... :lol:
Pero se puede comparar sin restar, no nos hace falta la diferencia entre los dos, solo cual es mayor. Eso se hace en los lenguajes de alto nivel, en lenguaje máquina o en ensamblador. No hace falta cast ni nada parecido.
Explícale eso a los transistores de silicio de la CPU. Por cierto, que al #24 lo conozco personalmente, de verlo cada día, de ahí mi licencia (y dudo que le haya insultado)
#42 sí, ha sido mi intención xD
En meneame.net (64 bits):
$ perl test.pl
Tue Jan 19 03:14:01 2038
Tue Jan 19 03:14:02 2038
Tue Jan 19 03:14:03 2038
Tue Jan 19 03:14:04 2038
Tue Jan 19 03:14:05 2038
Tue Jan 19 03:14:06 2038
Tue Jan 19 03:14:07 2038
Tue Jan 19 03:14:08 2038
Tue Jan 19 03:14:09 2038
Tue Jan 19 03:14:10 2038
En uno de 32 bits:
$ perl test.pl
Tue Jan 19 03:14:01 2038
Tue Jan 19 03:14:02 2038
Tue Jan 19 03:14:03 2038
Tue Jan 19 03:14:04 2038
Tue Jan 19 03:14:05 2038
Tue Jan 19 03:14:06 2038
Tue Jan 19 03:14:07 2038
Fri Dec 13 20:45:52 1901
Fri Dec 13 20:45:52 1901
Fri Dec 13 20:45:52 1901
––––––––––- el test definitivo––––––––
#!/usr/bin/perl
use POSIX;
# Use POSIX (Portable Operating System Interface),
# a set of standard operating system interfaces.
$ENV{'TZ'} = "GMT";
# Set the Time Zone to GMT (Greenwich Mean Time) for date calculations.
for ($clock = 2147483641; $clock < 2147483651; $clock++)
{
print ctime($clock);
}
# Count up in seconds of Epoch time just before and after the critical event.
# Print out the corresponding date in Gregorian calendar for each result.
# Are the date and time outputs correct after the critical event second?
Ains... si es que los informáticos son unos chapuceros... oh, wait!
PD: Venga, alguien que reste cuánto queda para el 1/ene/10000 día del efecto 10.000 xD
#21 no es una noticia de la Wikipedia, porque la Wikipedia no es un periódico. Tampoco es sobre la Wikipedia, porque no analiza cómo se trata allí esta información. Simplemente la Wikipedia explica bien esta noticia de una efeméride.
Felicidades, #39 :)
El caos ya lo predijo Jonh Titor ( es.wikipedia.org/wiki/John_Titor ) hace un par de años. De hecho, ese fue su principal motivo para viajar a nuestro tiempo xD!!!
"Los mensajes que dejó Titor afirman que era un soldado al cual se le asignó la misión de participar en un programa gubernamental de viajes en el tiempo. Supuestamente fue enviado desde 2036 hasta 1975 para conseguir un ordenador IBM 5100. Según él, esta máquina era necesaria para solventar el Efecto 2038, análogo al Efecto 2000, sufrido por los ordenadores con sistema operativo UNIX. "
(Ahora en serio, historia y toda la mitología al rededor de John Titor de verdad no tiene desperdicio ;))