DecomposeReal4 (10026)



 

1) Przeznaczenie bloku

DecomposeReal4 służy do rozłożenia 4-bajtowej liczby rzeczywistej pojedynczej precyzji (Real4) na dwie wartości 16-bitowe.

Blok działa odwrotnie do ComposeReal4 i w Simultusie przebieg jest następujący:

Blok nie wykonuje przeliczeń matematycznych na etapie rozdzielania słów – operuje na reprezentacji bitowej wartości Real4 powstałej po konwersji.


2) Interfejs bloku (wejścia / wyjścia)

Wejście

in
Typ: R (Real)

Wejściem jest liczba rzeczywista typu Real w Simultusie, tj. double (8 bajtów), która ma zostać ostatecznie rozbita na dwa słowa 16-bitowe (po konwersji do Real4).

Wyjścia

low
Zawiera młodsze 16 bitów reprezentacji wartości Real4 utworzonej z in.
Odpowiada bitom 0…15.

high
Zawiera starsze 16 bitów reprezentacji wartości Real4 utworzonej z in.
Odpowiada bitom 16…31.

Oznaczenie R przy wejściu jednoznacznie wskazuje, że blok przyjmuje liczbę rzeczywistą typu Real (double). Rozbijanie dotyczy natomiast reprezentacji Real4 powstałej po konwersji.


3) Zasada działania (bit po bicie)

Blok działa w dwóch krokach:

Krok 1 – konwersja wejścia

Krok 2 – rozkład Real4 na dwa słowa 16-bit
Blok rozkłada 32-bitowy wzorzec bitowy liczby typu Real4 w następujący sposób:

W zapisie operacyjnym:

gdzie bits32 to wewnętrzna 4-bajtowa reprezentacja wartości Real4 uzyskanej z in.


4) Znaczenie faktu, że rozkład dotyczy Real4

Liczba Real4 jest zapisana w 4 bajtach jako:

Blok DecomposeReal4:

Oznacza to, że:

Dodatkowo: ponieważ na wejściu jest Real (double), a rozkład dotyczy Real4, to przed rozbiciem wykonywana jest konwersja do pojedynczej precyzji, co może ograniczyć dokładność do tej dostępnej w Real4.


5) Kolejność słów (istotna w komunikacji)

Blok zawsze działa w ten sam sposób:

Przy zapisie do rejestrów komunikacyjnych należy sprawdzić:

Blok nie zamienia kolejności słów – jedynie je wydziela.


6) Procedura użycia krok po kroku

Podłącz liczbę Real (typ Simultusa: double, 8 bajtów) do wejścia in.

Odczytaj:

reprezentacji Real4 powstałej po konwersji wartości wejściowej.

Przypisz wartości low i high do rejestrów, zmiennych lub dalszych bloków.

Przy komunikacji zewnętrznej upewnij się, że kolejność zapisu odpowiada wymaganiom urządzenia.


7) Przykład na konkretnych liczbach

Przykład pokazuje mechanizm działania, oparty wyłącznie na reprezentacji bitowej.

Załóżmy, że po konwersji wartości wejściowej in do Real4 powstaje reprezentacja 4-bajtowa:

Rozkład:

Na wyjściach bloku:

Przykład pokazuje, że blok nie interpretuje wartości liczbowej na etapie rozdzielania słów, tylko rozdziela wzorzec bitowy Real4 (uzyskany po konwersji z typu Real w Simultusie).


8) Jak można wykorzystać blok DecomposeReal4

Blok DecomposeReal4 stosuje się w sytuacjach, gdy:

Typowe zastosowania: