[英]C#: Create an byte array with int and hex values
我需要用十六進制和整數值創建一個字節數組。
例如:
int value1 = 13;
int value2 = 31;
byte[] mixedbytes = new byte[] {0x09, (byte)value1, (byte)value2};
問題:31轉換為0x1F。 它應該是0x31。 我試圖將int值轉換為字符串,然后再轉換回字節,但這並不能解決問題。 整數不得超過兩位數。
嘗試這個:
int value1 = 0x13;
int value2 = 0x31;
byte[] mixedbytes = new byte[] { 0x09, (byte)value1, (byte)value2 };
另外,您似乎不了解十進制和十六進制之間的轉換。 十進制的31是十六進制的1F,期望更好地理解十進制和十六進制之間的轉換是不好的期望,請在此處查看: http : //www.wikihow.com/Convert-from -十進制到十六進制
我想你可以試試這個方法
string i = "10";
var b = Convert.ToByte(i, 16)
在這種方法中10將被存儲為0x10
這種格式通常稱為二進制編碼的十進制(BCD)。 這個想法是字節中的每個半字節都包含一個十進制數字。
在C#中,您可以非常輕松地進行此轉換:
var number = 31;
var bcd = (number / 10) * 16 + (number % 10);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.