Spec-Zone.ru › Octave 5

4.7 Продвижение и понижение типов данных

Многие операторы и функции могут работать со смешанными типами данных. Например,

uint8 (1) + 1
    ⇒ 2

где вышеуказанный оператор работает с 8-битным целым числом и значением двойной точности и возвращает значение 8-битного целого числа. Обратите внимание, что тип понижается до 8-битного целого числа, а не повышается до значения двойной точности, как можно было бы ожидать. Причина в том, что если Octave повышал бы значения в выражениях, подобных приведенному выше, со всеми числовыми константами, необходимо было бы явно привести их к соответствующему типу данных, например,

uint8 (1) + uint8 (1)
    ⇒ 2

что становится затруднительным для пользователя для единообразного применения и может позволить ввести трудно обнаруживаемые ошибки. То же самое относится к значениям одинарной точности, где смешанная операция, такая как

single (1) + 1
    ⇒ 2

возвращает значение одинарной точности. Действительные смешанные операции и возвращаемые типы данных:

Смешанная операцияРезультат
double OP singlesingle
double OP integerinteger
double OP chardouble
double OP logicaldouble
single OP integerinteger
single OP charsingle
single OP logicalsingle

Та же логика применима к функциям со смешанными аргументами, например,

min (single (1), 0)
   ⇒ 0

где возвращаемое значение имеет одинарную точность.

В случае смешанных индексированных присваиваний тип не изменяется. Например,

x = ones (2, 2);
x(1, 1) = single (2)
   ⇒ x = 2   1
          1   1

где x остается типа двойной точности.

© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v5.2.0/Promotion-and-Demotion-of-Data-Types.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API