Converter um 16 bits não assinado em um 16 bits assinado em C#
-
24-09-2019 - |
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)
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