Преобразовать объект в байтовый массив в C # - PullRequest
6 голосов
/ 15 ноября 2010

Я хочу преобразовать значение объекта в байтовый массив в c #.

EX:

 step 1. Input : 2200
 step 2. After converting Byte : 0898
 step 3. take first byte(08)

 Output: 08

спасибо

Ответы [ 4 ]

11 голосов
/ 15 ноября 2010

Вы можете взглянуть на метод GetBytes :

int i = 2200;
byte[] bytes = BitConverter.GetBytes(i);
Console.WriteLine(bytes[0].ToString("x"));
Console.WriteLine(bytes[1].ToString("x"));

Также убедитесь, что вы приняли во внимание порядковый номер в своем определении первый байт .

4 голосов
/ 15 ноября 2010

Использование BitConverter.GetBytes преобразует ваше целое число в массив byte[], используя системный порядковый номер системы.

short s = 2200;
byte[] b = BitConverter.GetBytes(s);

Console.WriteLine(b[0].ToString("X"));    // 98 (on my current system)
Console.WriteLine(b[1].ToString("X"));    // 08 (on my current system)

Если вам нужен явный контроль над порядком байтов преобразования, тогдавам нужно будет сделать это вручную:

short s = 2200;
byte[] b = new byte[] { (byte)(s >> 8), (byte)s };

Console.WriteLine(b[0].ToString("X"));    // 08 (always)
Console.WriteLine(b[1].ToString("X"));    // 98 (always)
4 голосов
/ 15 ноября 2010
byte[] bytes = BitConverter.GetBytes(2200);
Console.WriteLine(bytes[0]);
1 голос
/ 15 ноября 2010
int number = 2200;
byte[] br = BitConverter.GetBytes(number);
...