C 將位元組陣列轉成對應的整數

2021-07-24 12:53:04 字數 900 閱讀 3430

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...