Как я могу сохранить значение sbyte в байтовой переменной? - PullRequest
3 голосов
/ 11 июня 2010

Я программирую на C #. У меня есть переменная sbyte. Скажем, он содержит -10, что в двоичном виде 11110110. Я хочу хранить двоичное представление этого значения в байтовой переменной. Поэтому, когда я копирую sbyte (-10) в байт, значение байта будет 245. Если я пытаюсь использовать Convert.ToByte (sbyte), он выдает исключение, которое имеет смысл. Я действительно не хочу конвертировать из одного типа в другой, а сделать побитовое копирование. Как я могу это сделать?

Ответы [ 2 ]

10 голосов
/ 11 июня 2010

Просто приведите:

byte b = (byte) x;

Если ваш код обычно выполняется в проверенном контексте, вы захотите отключить эту операцию:

byte b = unchecked((byte) x);

Обратите внимание, что -10 будетстать 246, а не 245.

2 голосов
/ 11 июня 2010

Просто разыграйте:

byte b = 130;
sbyte a = (sbyte)b;
byte c = (byte)a; // will still be 130
...