My posługujemy się systemem dziesiętnym, ale tylko na co dzień. Ale jest jeszcze jeden system, który zrobił karierę i na pewno warsztatowcy spotykają się z nim na co dzień, nie zawsze zdając sobie z tego sprawy. Jest to system szesnastkowy. Dociekliwi szukają w podręcznikach do informatyki wiadomości na temat tych systemów zapisywania liczb i po wielu godzinach studiowania są w stanie cokolwiek zrozumieć. Warsztatowiec pracujący prawie cały dzień przy samochodach, przeważnie wraca na tyle zmęczony do domu, że wertowanie naukowych książek z wieloma wzorami i skomplikowanymi obliczeniami jest ponad jego siły. Można powiedzieć, że nie widzi on sensu oddawania się dodatkowym studiom. Dlatego tak jest, bo mechanik samochodowy nigdy nie będzie planował, obliczał i projektował magistrali przesyłu informacji w samochodzie. Stąd potrzeba takich artykułów, podających najważniejsze i krótkie wiadomości, a z drugiej strony wystarczające dla praktyka.
Przejdźmy teraz do bajtów. Każdy z nas wie ile ma RAM-u w komputerze (na przykład 500 kB), czy jakiej pojemności jest jego dysk twardy. Bajt jest to jednostka składająca się z ośmiu bitów (nie jest to zawsze prawda, ale mówimy o pewnych uproszczeniach). Bit to z kolei tak naprawdę najmniejsza jednostka, komórka, która może mieć wartość albo zero, albo jeden. Czyli jak połączymy osiem bitów, to mamy jeden bajt. Na przykład 11001011 zajmuje osiem pozycji, czyli jest to bajt (dokładniej oktet). Jest liczba 203 zapisana w sposób dwójkowy, tzn. do zapisu użyto tylko zer i jedynek. Jeżeli na magistrali cyfrowej znalazłaby się w jakiś cudowny sposób liczba 203, to żaden komputer nie potrafiłby zrozumieć o co chodzi. A jeżeli wprowadzimy 11001011, to natychmiast każdy sterownik odczyta to jako 203.
Nie tylko sterowniki rozumieją takie rzeczy, nawet my, mając na co dzień do czynienia z napięciami, rozumiemy, że jest napięcie i brak napięcia. Jeśli jest napięcie to jedynka – 1, zaś brak napięcia to 0. Jest to łatwe i dla nas, i dla sterowników. Przechodzimy dalej do bajtów, czyli ciągu z ośmioma miejscami. Na każdym miejscu, czyli bicie, może być albo 0, albo 1. Zauważmy, że w takim bajcie istniej bardzo dużo kombinacji zero-jedynkowych. Można nawet obliczyć, ile różnych kombinacji zmieści się w jednym bajcie. „Przemądrzałe książki podają”, że jest to 256. Jest to bardzo dużo. Niektórzy obeznani z matematyką stwierdzą od razu, że to mało, bo nie można zapisać liczb ujemnych. Nieprawda, możemy sobie ustalić, że liczba 128 to zero. Liczby większe od 128, to liczby dodatnie, a mniejsze, to ujemne. To samo można zrobić z ułamkami, a nawet całymi literami. I tu uważny czytelnik powinien skojarzyć ten środek, tę liczbę 128. Przecież tak działa sonda lambda i układy korekcji mieszanki. Po wykasowaniu adaptacji, korekcje startują od liczy 128. Właśnie, startują od zera. Przecież to nasza codzienna czarna robota i wpatrywanie się w ekran skanera. Cała korekta składu mieszanki mieści się w jednym bajcie. Programista, który ileś lat temu pisał program do korekty krótko- i długoterminowej, był przecież informatykiem i swobodnie posługiwał się bajtami. Stwierdził, że korekta na plus o 128 punktów lub na minus (czyli zubożanie mieszanki) wystarczy do regulacji silnika. Tylko trochę wiadomości z informatyki i świat staje się o wiele prostszy. Chwila przerwy na historię. Mamy lata pięćdziesiąte. Już wtedy były komputery i posługiwano się bajtami. Bajt składa się z ośmiu pozycji, czyli dwa razy po cztery. Cztery miejsca (bity) mogą pomieścić tylko szesnaście liczb, od 0 do 15. Te cztery bity można by zamienić na jedną liczbę, jakąś wymyśloną. Zatem, liczby od zera do piętnastu zastępujemy jakimiś symbolami. O zera do dziewięciu pozostawiamy bez zmian, a od 10 do 15 zastępujemy literami z alfabetu, czyli od A do F. To znaczy liczba 10 teraz ma symbol A, a 13 symbol D. Nie będziemy wnikali czy jest to mądre, czy nie, po prostu poznajemy ten nowy, sztuczny wymyślony szyfr. Już mamy jedną korzyść: zamiast dwóch znaków, używamy jednego (10-dwa znaki, zamienione na A-jeden znak).
I oto niepostrzeżenie wkroczyliśmy w świat trzeciego systemu, systemu szesnastkowego. Popatrzymy się na przykład jakiejś liczby przypadkowej 707 (zapis dziesiętny). W zapisie dwójkowym mamy wygląd taki: 1011000011, a w szesnastkowym: 2C3. Skąd znamy taki szyfr? Przecież pełno jest takich znaczków w postach na forum dotyczących na przykład poduszek powietrznych. Sprytni koledzy piszą: wymień 2C3 na 5F7 pod danym adresem (te liczby są przypadkowe w naszym przykładzie). Przecież liczby muszą być zamieniane na litery lub całe słowa. Znając dany szyfr (język) jesteśmy w stanie odczytać, co dany autor miał na myśli, co wpisał do danej komórki pamięci. Sprytni koledzy przeważnie nie wnikają tak głęboko, po prostu porównują zawartość pamięci ze sterownika, który miał wypadek, ze sterownikiem bez kolizji. I znajdują gdzie jest zapisana informacja o zadziałaniu poduszek. Zauważmy, że świat posługuje się właśnie tym kodem szesnastkowym. Po podłączeniu do komputera pamięci ze sterownika (czyli odczytaniu zawartości pamięci przez programator), zobaczymy na ekranie komórki pamięci, a w nich liczby szesnastkowe. Każda taka liczba ma swoje współrzędne, swój adres. Koledzy wiedzą pod jakim adresem jest zapisany wypadek i na co go zamienić, aby oszukać sterownik. To wszystko jest opisywane w naszym artykule nie po to, aby oszukiwać sterowniki, ale po to, aby zrozumieć świat jaki nas otacza. Równie dobrze ktoś mógłby kontrolować fora i wyłapywać informacje, które nie są zgodne z etyką zawodową, a może nawet z prawem. Ale tak nie jest, dlatego powinniśmy wiedzieć co się wokół nas dzieje. Na forum podaje się też informacje, w jaki sposób zwiększyć zakres działania systemu komfortu, na przykład odblokować domykanie szyb. Jest wiele innych tematów, gdzie wymieniane są informacje na temat modyfikacji pamięci. Jeżeli interesuje nas zamienianie liczb z jednego systemu na drugi bez wysiłku, czyli własnych obliczeń, to polecam kalkulatory, w których są takie przeliczenia (każdy kalkulator komputerowy).
Na koniec (ale tylko tego odcinka) warto zwrócić uwagę na sposób, w jaki są zaznaczane liczby zapisane w systemie szesnastkowym. Może być to indeks na końcu, typu literka „h” lub „H” (od słowa heksagonalny, czyli szesnastkowy). Może być użyty skrót „hex”, albo liczba „16”. Inne sposoby to umieszczanie dolara przed liczbą „$”, duże iks „X”, albo „0x”. Są to oznaczenia mówiące nam, że ta liczba jest zapisana w systemie szesnastkowym. A czyż nie przypominamy sobie odczytywanie w skanerze danych w systemie EOBD, a przed opisem znaczki z dolarem? Ale o tym za miesiąc.
Stanisław Mikołaj
Słupski Prive
Komentarze (0)