如何在字节变量中存储sbyte值?

时间:2010-06-11 13:40:39

标签: c# byte unsigned

我在C#中编程。 我有一个sbyte变量。 说它保持-10,二进制是11110110。 我想将此值的二进制表示存储在字节变量中。 因此,当我将sbyte(-10)复制到字节时,字节值将为245。 如果我尝试使用Convert.ToByte(sbyte),它会抛出一个有意义的异常。 我真的不想从一种类型转换到另一种类型,而是进行逐位复制。 我怎么能这样做?

2 个答案:

答案 0 :(得分:10)

刚演员:

byte b = (byte) x;

如果您的代码通常在选中的上下文中运行,则您需要取消选中此操作:

byte b = unchecked((byte) x);

请注意,-10将变为246,而不是245。

答案 1 :(得分:2)

投下它:

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