這段時間用 Java 寫了一個
WebService,其中有一個功能就是將上傳的文件保存在服務器上。Java 在對文件進行讀寫操作時用於保存文件內容的數據類型爲
byte[],所以 WebSerivce 中自然有 byte[] 類型的參數。但當我用 C# 進行調用的時候報錯說 byte 不能隱式轉換爲
sbyte。經上網搜索發現 Java 中的 byte 爲有符號 8 位整數,等於 C# 中的 sbyte,而 C# 中的 byte 爲 8
位無符號整數。所以此時就需要將 byte 轉爲 sbyte。原理很簡單,就是當 byte 小於 128 時其值保持不變,大於等於 128
時就將其減去 256。代碼如下:
sbyte
[] mySByte
=
new
sbyte
[myByte.Length];
for ( int i = 0 ; i < myByte.Length; i ++ )
{
if (myByte[i] > 127 )
mySByte[i] = ( sbyte )(myByte[i] - 256 );
else
mySByte[i] = ( sbyte )myByte[i];
}
for ( int i = 0 ; i < myByte.Length; i ++ )
{
if (myByte[i] > 127 )
mySByte[i] = ( sbyte )(myByte[i] - 256 );
else
mySByte[i] = ( sbyte )myByte[i];
}