19:12
5/1/2010

Gdzieniegdzie pojawiły się doniesienia o tym, że niektóre SMS-y otrzymane po nowym roku przychodzą z datą 2016, a nie 2010. Poniżej wyjśniamy, skąd wziął się komórkowy problem roku 2016.

Problem roku 2016

…polega na nieprawidłowym wyświetlaniu daty. Zamiast 2010, niektóre z kart kredytowych, terminali płatniczych, centralek telefonicznych, telefonów komórkowych z Windows Mobile na pokładzie i innych urządzeń elektromechanicznch pokazują datę 2016. Wina, jak zwykle, leży po stronie programistów ;) Poprawmy zatem nieprecyzyjne artykuły prasowe, prezentując wyjaśnienie magicznego błędu:

Dzięsiątkę w 2010 można zapisać w ten sposób: 0x10, co zawsze oznaczać będzie 0001 0000.

Jeśli 0001 0000 zostanie zinterpretowane przez urządzenie jako liczba binarna, otrzymamy dziesiętną wartość 16
Jeśli 0001 0000 zostanie zinterpretowane jako notacja BCD (Binary Coded Decimal), w której cyfry 0-9 są reprezentowane przez kody od 0000 do 1001, liczba 0001 0000 da wynik 10.

BCD to system kodowania, który liczby heksadecymalne i binarne prezentuje w zakodowanej postaci, ale liczby dziesiętne już w formie rozkodowanej. Innymi słowy, programista odczytał datę jako liczbę jako binarną, a nie liczbę w notacji BCD. Ot, tajemnica rozwiązana.

Przeczytaj także:

9 komentarzy

Dodaj komentarz
  1. Cóż, było trochę o tym na przedmiocie zwanym Techniką Cyfrową, jak widać akademicka wiedza się czasem przydaje. ;]

  2. Patrzta się, o BCD czytałem jeszcze na początku lat dziewięćdziesiątych w kursie asemblera w nieocenionym miesięczniku „Tajemnice ATARI”. Nigdy nie wiadomo, kiedy jaka wiedza się przyda. ;P

  3. @Tomasz Kowalczyk, w technikach też o tym uczą ;-)

  4. Ew. komuś się hexy z dec pomyliły:
    0x09 hex = 09 dec
    0x10 hex = 16 dec
    Zamiast błąd roku 2010 powinien byc raczej “błąd niekometentnego programisty” ;]

  5. @Marek Zając: Niestety jestem po liceum, ominęły mnie takie ciekawostki. ;]

  6. Szkoda, że Piotr nie wymienił więcej przykładów, jest nieco więcej sprzętu i oprogramowania dotkniętego problemem roku 2010. Opisałem to po krótce u siebie: http://stilger.eu/2010/01/06/problem-roku-2010/

  7. Pewnie nie chciał Ci zabierać materiału. ;]

  8. bardzo możliwe:)

  9. @Tomasz Kowalczyk: to tak dla rozjaśnienia sytuacji ;]

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: