Pergunta

Estou escrevendo um analisador de dados para um controlador de robôs e o que está chegando do log de dados é um número no intervalo de 0 a 65535 (que é um número inteiro não assinado de 16 bits se não for enganado). Estou tentando convertê -lo em um número inteiro assinado de 16 bits para o usuário (já que esse era o tipo de dados real antes do logger alterá -lo).

Alguém pode me dar uma mão?

Exemplo:

Quais devem ser os valores (0, -1, -2, -3, -4)

Quais são os valores (0, 65535, 65534, 65533, 65532)

Foi útil?

Solução

Você já tentou elenco explícito?

UInt16 x = 65535;
var y = (Int16)x; // y = -1
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top