Преобразуйте типы данных с фиксированной точкой, не изменяя базовые данные
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