Magiczny numer 0xCAFEBABE

napisane przez wiktor, 23:00 06-14-2007

Magiczne liczby są dość często używane w półświatku programistycznym. Mają najróżniejsze przeznaczenia (więcej tutaj: http://en.wikipedia.org/wiki/Magic_number_(programming)). 0xCAFEBABE jest przykładem użycia takie magicznego numeru.

Gdzie występuje?

0xCAFEBABE jest umieszczane na początku każdego pliku z bajtokodem skompilowanej klasy w Javie (*.class). Jest to sygnaturka, która identyfikuje typ pliku.

Ile wynosi 0xCAFEBABE?

Jest to szesnastkowy zapis liczby 3405691582. Sama w sobie była by to nudna wartość, ale w zapisie szesnastkowym nabiera miłe znaczenie (kawiarniana panienka?, kawiarnia “Kociak”? ;)). Ponieważ w zapisie heksadecymalnym 32-bitowej liczby nie występują litery ‘J’ ani ‘V’ to zespół tworzący Javę musiał obejść te litery.

“CAFE BABE” jest o wiele seksowniejsze (jazzy?) niż “CAFE FACE” lub co gorsza “A BAD CAFE”. Z drugiej strony można spekulować nad innymi kombinacjami, np. liczba 12648430 daje zapis 0×00C0FFEE, czyli zorientowana obiektowo kawa ;).

Czy gdzieś wcześniej pojawiło się 0xCAFEBABE?

Po przeczesaniu słuszną (i dobrą) wyszukiwarką sieci znalazłem różne przykłady wcześniejszych zastosowań. W komputerach NeXTSTEP (tych, o których Steve Jobs już chyba zapomniał ;)) służyła do rozróżnienia wykonywalnych plików binarnych: dla Intela czy dla Motoroli. Ciekawe, którą platformę 0xCAFEBABE reprezentowała. Może NeXTSTEP (dziś już Apple) powinien posiadać prawo do Javy w takim razie? ;)

Znacie jakieś inne przykłady zastosowań magicznych liczb?

Zostaw komentarz

Możesz używać znaczników do formatowania kodu takich jak: <b>...</b>, <code>...</code> lub dla konkretnych języków programowania: [java]...[/java], [ruby]...[/ruby] itd.


Wiktor Gworek Nazywam się Wiktor Gworek i jestem gospodarzem tego bloga.
Przeczytaj więcej o mnie »