Массив из 4-х байт

189
21 декабря 2018, 21:00

Есть число int(32). Как его конвертировать в массив байтов с MSB first? Перечитал все что нашел о "GetByte", но у меня с этим методом почему-то число просто переносится в конец масива из четырех байт. То есть, введя число, скажем 10, я получаю 0, 0, 0, 10... Как сделать, чтобы число именно разбивалось на 4 байта.

Answer 1

Спасибо за советы. Про BigEndian/LittleEndian я прочел. Решение нашел:) Дело в том что, апликация для управления мотором посылает на драйвер мотора команду в виде 9 байт. где байты с 4 по 7 это значене на которое нужно двигаться. И он может пулучать их только так... Решение что я сделал, конвертировал

int в .String("X8")

затем получил хекс строку, разбил и конвертировал ее на 4 байта. и после подставил 4 байта в массив(команды) из 9 байт. П.С если интересно вот кусок кода что я в итоге использую:

private void button2_Click(object sender, EventArgs e)//HOME button
        {
            port.Write(M_home, 0, M_home.Length); (9 байт команды)
            port.Read(buffer, 0, buffer.Length);(9 байт ответа)
            arr1[0] = buffer[4];(1 байт значения)
            arr1[1] = buffer[5];(2 байт значения)
            arr1[2] = buffer[6];(3 байт значения)
            arr1[3] = buffer[7];(4 байт значения)
            string var = ByteArrayToString(arr1);
            int r = int.Parse(var, 
                               System.Globalization.
                               NumberStyles.HexNumber);
            textBox1.Text = Convert.ToString(r);
        }
READ ALSO