W tym zadaniu chodzi o wczytanie liczby zmiennoprzecinkowej i tej pamięci jaką zajmuje ta zmienna trzeba wypisać w postaci heksagonalnej ( szesnastkowym systemie liczbowym ) .
Najlepiej zrobić to poprzez rzutowanie - w pascalu jest coś takiego jak deklarowanie zmiennej jako absolute wtedy taka zmienna zajmuje ( wskazuje ) na miejsce zajmowane przez inną zmienną .
Var InputFloat : Float;
FloatToArrar : Array[0..3] of Byte absolute InputFloat;
Jest też coś takiego jak rekord z wariantami .
Type TDane = Record
case Byte of
0: ( InputFloat : Float );
1:( FloatToArray : Array[ 0..3 ] of Byte )
end;
Var Dane : TDane;
Po wczytaniu z wejscia do zmiennej Dane masz od razu dostęp do reprezentacji bitowej liczby .
Jest też jeszcze zwykłe rzutowanie przez wskaźnik - ale to stosują tylko zaawansowani koderzy .
Generalnie algorytm postępowania w zadaniu wygląda tak :
1. Wczytaj dane do Float;
2. Zrzutuj Float na typ Bajtowy ( najwygodniej )
3. Przekonwertuj każdy Bajt na Hex.
4. Przekonwertuj każdy Hex na Char
5. Wypisz Char-y z odstępami .