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