將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