在Java中,这将返回字符串“ -128”;

   byte[] remaining = new byte[total- entred];
    remaining[0] = (byte)0x80;


如何用C#编写呢? (字节)0x80;似乎无法在C#中工作

最佳答案

在Java中,字节是带符号的。因此在C#中:

sbyte[] remaining = new sbyte[total- entred];
remaining[0] = unchecked((sbyte)0x80);


或更简单:

remaining[0] = -128;


坦率地说,谈论byte(无符号)通常比sbyte更有意义。在Java代码中,它可能使用带符号的字节,因为这是它可以使用的,而不是因为它实际上想使用带符号的字节。

09-28 10:18