2010-01-31 18 views
5

Estoy escribiendo un analizador de registro de datos para un controlador de robot, y lo que viene del registro de datos es un número en el rango de 0 - 65535 (que es un entero sin signo de 16 bits si no me equivoco). Intento convertir eso en un entero de 16 bits firmado para mostrar al usuario (ya que ese era el tipo de datos real antes de que el registrador lo cambiara).Convertir un int sin firmar de 16 bits a un int firmado de 16 bits en C#

¿Alguien me puede ayudar?

Ejemplo:

Lo que los valores deben ser (0, -1, -2, -3, -4)

Lo que los valores son (0, 65535, 65534, 65533, 65532)

Respuesta

12

¿Has probado el lanzamiento explícito?

UInt16 x = 65535; 
var y = (Int16)x; // y = -1 
+0

¡Eres un genio, gracias! –

Cuestiones relacionadas