2014-02-06 69 views
-1

我要創造我自己的字節數組e.g:如何用你自己的字節創建字節數組?

byte[] connect = new byte[] { 0x00, 0x21, 0x60, 0x1F, 0xA1, 0x07 }; 

此字節數組工作得很好,但我需要改變一些十六進制代碼。我試圖做很多改變,但沒有人工作。

Int32 hex = 0xA1; 

byte[] connect = new byte[] { 0x00, 0x21, 0x60, 0x1F, 0xA1, hex}; 


string hex = "0xA1"; 

byte[] connect = new byte[] { 0x00, 0x21, 0x60, 0x1F, 0xA1, hex}; 


byte[] array = new byte[1]; 
array[0] = 0xA1; 

byte[] connect = new byte[] { 0x00, 0x21, 0x60, 0x1F, 0xA1, array[0]}; 

我不知道我必須用什麼類型的變量來替換自動數組值。

+0

這是一個字節數組。所以這個數組的每個元素都是....? – Dirk

+0

問題是因爲......而被低估的? – Sinatr

回答

3

投下你的int字節:

Int32 hex = 0xA1; 
byte[] connect = new byte[] { 0x00, 0x21, 0x60, 0x1F, 0xA1, (byte)hex}; 

或者將其定義爲一個字節開始說起:

byte hex = 0xA1; 
byte[] connect = new byte[] { 0x00, 0x21, 0x60, 0x1F, 0xA1, hex}; 

字符串到字節轉換:

static byte hexstr2byte(string s) 
{ 
    if (!s.StartsWith("0x") || s.Length != 4) 
     throw new FormatException(); 
    return byte.Parse(s.Substring(2), System.Globalization.NumberStyles.HexNumber); 
} 

正如你所看到的, .NET格式化支持六位數字,但不支持「0x」前綴。完全忽略該部分會更容易,但是您的問題並不完全清楚。

+0

謝謝!你的例子工作正常。但我收到的值在字符串,當我嘗試Convert.ToInt32(十六進制)我有一個異常:輸入字符串不是在一個正確的格式。 – Catao

+0

你並沒有在你的問題中確切地說你想從字符串轉換...我將其添加到我的答案。 – fejesjoco

3

聲明它像「字節十六進制= 0xA1」也許?