Преобразуйте типы данных с фиксированной точкой, не изменяя базовые данные
c = reinterpretcast(a, T)
c = reinterpretcast(a, T)
преобразовывает вход a
в тип данных, заданный объектом numerictype
T
, не изменяя базовые данные. Результат возвращен в объекте fi
c
.
Вход a
должен быть встроенным целым числом или объектом fi
с типом данных с фиксированной точкой. T
должен быть объектом numerictype
с полностью заданным типом данных с фиксированной точкой. Размер слова входных параметров a
и T
должен быть тем же самым.
Функция reinterpretcast
отличается от MATLAB® typecast
и функций cast
, в которых это только работает с объектами fi
и встроенными целыми числами, и это не позволяет размеру слова входа изменяться.
В следующем примере a
является объектом fi
со знаком с размером слова 8 битов и дробной длиной 7 битов. Функция reinterpretcast
преобразовывает a
в объект fi
без знака c
с размером слова 8 битов и дробной длиной 0 битов. Реальные значения a
и c
отличаются, но их бинарные представления являются тем же самым.
a = fi([-1 pi/4], 1, 8, 7) T = numerictype(0, 8, 0); c = reinterpretcast(a, T) a = -1.0000 0.7891 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 8 FractionLength: 7 c = 128 101 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 8 FractionLength: 0
Чтобы проверить, что базовые данные не изменились, сравните бинарные представления a
и c
:
binary_a = bin(a) binary_c = bin(c) binary_a = 10000000 01100101 binary_c = 10000000 01100101
cast
| fi
| numerictype
| typecast