Magiczny numer 0xCAFEBABE
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?
Nazywam się Wiktor Gworek i jestem gospodarzem tego bloga.