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