Je programme en C#. J'ai une variable sbyte. Dites qu'il contient -10 qui est en binaire 11110110. Je veux stocker la représentation binaire de cette valeur dans une variable octet. Donc, quand je copie le sbyte (-10) à l'octet la valeur des octets serait 245. Si j'essaie d'utiliser Convert.ToByte (sbyte), il émet une exception qui a du sens. Je ne veux vraiment pas passer d'un type à l'autre mais plutôt faire une copie au format bit. Comment puis-je faire cela?Comment puis-je stocker une valeur sbyte dans une variable byte?
3
A
Répondre
10
Juste fonte:
byte b = (byte) x;
Si votre code est normalement en cours d'exécution dans un contexte contrôlé, vous aurez envie de faire cette opération sans contrôle:
byte b = unchecked((byte) x);
Notez que -10 deviendra 246, pas 245.
2
il suffit de le lancer:
byte b = 130;
sbyte a = (sbyte)b;
byte c = (byte)a; // will still be 130
La curiosité me pousse à demander, Pourquoi la variable est-elle un sbyte? Qu'est-ce que ça tient? –
Eh bien, la valeur est envoyée via un bus USB à un périphérique. L'outil que j'utilise pour envoyer des données ne prend que des tableaux d'octets. Le micrologiciel de l'appareil saura interpréter cet octet particulier comme un octet signé de l'autre côté. – PICyourBrain