Есть число int(32)
. Как его конвертировать в массив байтов с MSB first?
Перечитал все что нашел о "GetByte", но у меня с этим методом почему-то число просто переносится в конец масива из четырех байт.
То есть, введя число, скажем 10, я получаю 0, 0, 0, 10
...
Как сделать, чтобы число именно разбивалось на 4 байта.
Спасибо за советы. Про 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);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?