INT_TO_UINT16


blok funkcyjny w przygotowaniu
 

1) Przeznaczenie bloku

INT_TO_UINT16 służy do konwersji wartości wejściowej typu INT w Simultusie do wartości 16-bitowej, poprzez zachowanie tylko dwóch najmłodszych bajtów wartości wejściowej.

W Simultusie typ INT na wejściach i wyjściach bloków jest typu int32 (4 bajty), dlatego:

Blok nie wykonuje klasycznej konwersji matematycznej, lecz operuje na reprezentacji bajtowej wartości wejściowej.


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

Wejście

in
Typ: INT (w Simultusie: int32, 4 bajty)

Zakres wejściowy:
[-2147483648 … 2147483647]


Wyjście

out
Typ: INT (w Simultusie: int32, 4 bajty)

Zakres wartości wyjściowej:
[0 … 65535]

Wyjściowa wartość odpowiada 16-bitowej liczbie utworzonej z dwóch najmłodszych bajtów wejścia, zapisanej jako int32.


3) Zasada działania (na poziomie bajtów i bitów)

Blok działa w następujący sposób:

  1. Przyjmuje wartość wejściową typu int32 (4 bajty).

  2. Odrzuca dwa starsze bajty tej wartości.

  3. Zachowuje dwa najmłodsze bajty (16 bitów).

  4. Tworzy z nich wartość 16-bitową.

  5. Wynik prezentuje na wyjściu jako INT (int32).

Schemat logiczny:


 
 
int32 (wejście) ↓ [odrzucenie 2 starszych bajtów] ↓ int16 (logicznie) ↓ int32 (wyjście)

Na poziomie bitów:


4) Konsekwencje wynikające z obcinania starszych bajtów

Ponieważ blok wykorzystuje wyłącznie dwa najmłodsze bajty:

Oznacza to, że:


5) Zakres i interpretacja wyniku

Po konwersji:

Wyjście nie zawiera informacji o znaku ani o starszych bajtach wejścia.


6) Procedura użycia krok po kroku

  1. Podłącz wartość typu INT (int32) do wejścia bloku.

  2. Traktuj tę wartość jako źródło danych, z którego istotne są tylko dwa najmłodsze bajty.

  3. Odczytaj wyjście out jako wartość z zakresu 0…65535.

  4. Używaj wyniku jako:

    • wartości 16-bitowej,

    • wartości rejestrowej,

    • składnika dalszych operacji (np. ComposeInt32, ComposeReal4).


7) Przykład na konkretnych liczbach

Dane wejściowe:

Postać heksadecymalna (int32):

Dwa najmłodsze bajty:

Interpretacja jako wartość 16-bitowa:

Wynik na wyjściu bloku:

Przykład pokazuje, że:


8) Jak można wykorzystać blok INT_TO_UINT16

Blok INT_TO_UINT16 stosuje się, gdy:

Typowe zastosowania: