typecast

Reinterpreta os bytes de um valor como outro tipo numérico, sem converter os valores.

Categoria: Language Fundamentals > Data Types

Sintaxe

Y = typecast(X, type)

Retorna os bytes de X lidos como números da classe type.

Descrição

Ao contrário de double(x) ou uint8(x), que convertem valores, typecast preserva os bits da memória e muda apenas a forma como são lidos. Por exemplo, o número 1 em precisão simples tem o padrão de bits 0x3F800000, então typecast(single(1), 'uint32') é 1065353216.

O total de bytes precisa caber exatamente no novo tipo: oito bytes uint8 formam um double, mas sete não, e ocorre um erro. O resultado segue a ordem de bytes da máquina, que é little endian no hardware comum.

Argumentos de entrada

X
Vetor numérico ou lógico.
type
Classe de destino: 'uint8', 'int16', 'single', 'double' e assim por diante.

Argumentos de saída

Y
Vetor com os mesmos bytes de X. O número de elementos muda conforme os tamanhos dos dois tipos.

Exemplo

Lendo os mesmos bytes como outros tipos

typecast(single(1), 'uint32')
typecast(uint8([1 0 0 0]), 'uint32')
typecast(uint8([0 0 128 63]), 'single')
typecast(int8([-1 -1]), 'uint16')
Saída
ans = uint32
   1065353216
ans = uint32
   1
ans = single
   1
ans = uint16
   65535

Veja também

cast double uint8 swapbytes bitshift