giovedì 7 gennaio 2010

Decennium Bug

Come alcuni avranno notato, allo scoccare della mezzanotte del 31/12/2009 si è manifestato un simpatico bug, di nuovo legato alla rappresentazione degli anni. Alcuni dispositivi, tra cui diversi cellulari con SO Microsoft (e figuriamoci se si facevano mancare un bug), hanno "saltato" 6 anni passando, invece che al 2010, direttamente al 2016.

La causa di questo problema è secondo me da ricercare nella codifica usata per la rappresentazione delle ultime due cifre, infatti nel caso fossero state in formato BCD si avrebbe che:

09 è rappresentato come 0000 1001
10 è rappresentato come 0001 0000

Mentre fino a 09 la rappresentazione in formato BCD e quella binaria su 8 bit coincidono si ha che, nel caso di 10, la rappresentazione in formato BCD corrisponde esattamente al numero 16 binario.

Concludendo se qualche programmatore disattento non avesse considerato che quel numero era in formato BCD e lo avesse trattato come un normale numero binario su 8 bit se ne sarebbe accorto soltanto nel 2010, come appunto sta accadendo, con un bel "Decennium bug".

Buon 2010!

1 commento:

MAURO ha detto...

E se il programmatore ci avesse pensato prima io non mi sarei fatto 350km in giro per la sardegna per risolvere il problema .....grazie Francesco. MAURO