byte 類型轉 sbyte 類型

 

這段時間用 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];
}
發佈了42 篇原創文章 · 獲贊 3 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章