public
byte pm2_5_b = new
byte[0x00,0x46];
public
short pm2_5;
pm2_5 = bitconverter.toint16(pm2_5_b, 0);
在做的乙個專案,需將裝置傳過來的位元組陣列轉成實際值儲存下來,android端直接取出對應位元組直接轉換沒問題,而我後端(.net)轉出來的數卻很大,聯想到可能是高低位的問題。查詢資料後發現果然如此:
bitconvert中原始碼:
public
static
class bitconverter
if ((uint) startindex >= value.length)
if (startindex > value.length -2)
contract.endcontractblock();
fixed( byte * pbyte = &value[startindex])
else
else }}
}
由**可見,c#在轉換時,根據唯讀變數 islittleendian(是否從低位到高位),來確定如何轉換,故調整**如下:
public
byte pm2_5_b = new
byte[0x00,0x46];
public
short pm2_5;
//判斷資料在此計算機結構中儲存時的位元組順序
if (bitconverter.**islittleendian**)
pm2_5 = bitconverter.toint16(pm2_5_b, 0);
調整後即可正確取到實際值。 C 位元組陣列操作
合併位元組陣列 public static byte combinebytearray byte bytearra return ams.toarray 位元組陣列擷取 32位 public unsafe static byte subbytearray byte src,int begin,int...
C 位元組陣列擷取
c 位元組陣列擷取 如 byte bt new byte 方法一 擷取位數規則 1 擷取2位長度的位元組陣列 用bitconverter.toint16 例如,從第2位開始擷取2個位元組則 bitconverter.toint16 bt,2 2 擷取4位長度的位元組陣列 用bitconverter....
C 字串到位元組陣列,位元組陣列轉整型
int num 12345 string num1 convert.tostring 12345,16 byte bytes bitconverter.getbytes num 將int32轉換為位元組陣列 num bitconverter.toint32 bytes,0 將位元組陣列內容再轉成in...