Язык nML синтаксис операторы примеры » History » Version 6
Alexander Protsenko, 06/18/2019 02:56 PM
1 | 2 | Alexander Protsenko | *Язык nML: синтаксис, операторы, примеры* |
---|---|---|---|
2 | |||
3 | h1. История языка nML |
||
4 | |||
5 | h1. Синтаксис языка nML |
||
6 | |||
7 | h1. Ключевые операторы языка nML и примеры кода |
||
8 | |||
9 | h3. Оператор преобразования типа: *cast* |
||
10 | |||
11 | h3. Оператор присвоения типа: *сoerce* |
||
12 | |||
13 | h1. Использование библиотеки softfloat для работы с числами с плавающей точкой |
||
14 | 3 | Alexander Protsenko | |
15 | В языке nML, используемом в инструменте MicroTESK, для создание типа чисел с плавающей точкой необходимо использовать ключевое слово *float(мантисса, показатель степени)*. |
||
16 | Пример: |
||
17 | <pre> |
||
18 | type FLOAT16 = float(10, 5) |
||
19 | type FLOAT32 = float(23, 8) |
||
20 | type FLOAT64 = float(52, 11) |
||
21 | type FLOAT128 = float(112, 15) |
||
22 | </pre> |
||
23 | 4 | Alexander Protsenko | |
24 | *float_rounding_mode* - параметр содержащий режим округления. В соответствии с этим параметром происходит округление при обработке операций библиотекой. |
||
25 | |||
26 | В настоящий момент поддерживается 5 режимов округления: |
||
27 | * round_nearest_even(0), |
||
28 | * round_up(1), |
||
29 | * round_down(2), |
||
30 | * round_to_zero(3), |
||
31 | * round_near_maxMag(4); |
||
32 | 5 | Alexander Protsenko | |
33 | Операторы преобразования чисел с плавающей точкой: |
||
34 | * число float = int_to_float(тип float, число int) |
||
35 | 6 | Alexander Protsenko | * целое число = float_to_int(тип целое число, число float) |
36 | |||
37 | Примеры преобразований: |
||
38 | |||
39 | <pre>var fp_32[FLOAT32] |
||
40 | var word_32[WORD] |
||
41 | word_32 = float_to_int(WORD, fp_32);</pre> |
||
42 | |||
43 | <pre>var fp_32[FLOAT32] |
||
44 | var int_32[int(32)] |
||
45 | fp_32 = int_to_float(FLOAT32, int_32);</pre> |