将Java应用程序转换为C#时,我遇到了一个奇怪且非常烦人的代码,这对于原始版本非常重要并且很有用。字节顺序:将java字节转换为c#
byte[] buf = new byte[length];
byte[] buf2 = bout.toByteArray();
System.arraycopy(buf2, 0, buf, 0, buf2.length);;
for (int i = (int) offset; i < (int) length; ++i) {
buf[i] = (byte) 255;
}
这是造成铸造错误的部分是套入字节255的buf[i]
:而在Java它工作得很好,因为java.lang.Byte
跨度从0到255,从.NET 0 System.Byte
跨度为254 由于此限制,在应用程序的C#版本的输出是不是255,正如所料,缓冲区包含一套254
谁能给我一个可行的替代方案?
非常感谢您的支持。
嗯,是什么让你觉得一个.NET字节不去255? – 2009-08-18 20:22:18
http://msdn.microsoft.com/en-us/library/5bdb6693(VS.80).aspx - 范围是255.代码中是否还有其他内容? – 2009-08-18 20:27:50
Java字节是有符号的,所以(字节)255是(字节)-1。不知道这是否会有所作为。 – 2009-08-18 20:34:06