J'écris un analyseur de données pour un contrôleur de robot et qu'en vient du journal des données est un nombre compris entre 0 et 65535 (qui est un entier non signé de 16 bits si je ne me trompe pas). J'essaie de convertir cela en un entier de 16 bits signé pour afficher à l'utilisateur (puisque c'était le type de données réel avant que l'enregistreur ne le change). P>
Quelqu'un peut-il me donner une main? P>
Exemple: P>
quelles sont les valeurs (0, -1, -2, -3, -4) p>
Quelles sont les valeurs (0, 65535, 65534, 65533, 65532) P>
3 Réponses :
Avez-vous essayé de moulage explicite?
Va crash si [x] vérifie le débordement arithmétique code> est activé.
Utilisation non cochéra code> Ici évite ici un crash si
[x] vérifie le débordement arithmétique code> est activé:
UInt16 x = 65535;
Int16 y = unchecked((Int16)x);