c# - 在 C# 中将大数转换为两个字节

标签 c# textbox serial-port byte robot

我正在尝试将文本框中的数字转换为 2 个字节,然后可以通过串行方式发送。数字范围从 500 到 -500。我已经有了一个设置,所以我可以简单地发送一个字符串,然后将其转换为一个字节。这是一个例子:

send_serial("137", "1", "244", "128", "0")

文本框编号将放在第 2 和第 3 个字节

这将使我的 Roomba(所有这些代码适用的机器人)以 500 毫米/秒的速度向前行驶。发送的第一个数字告诉 roomba 开车,第二个和第三个数字是速度,第四个和第五个数字是转弯的半径(在 2000 和 -2000 之间,也有一个特殊情况,其中 32768 是直线)。

最佳答案

var value = "321";
var shortNumber = Convert.ToInt16(value);
var bytes = BitConverter.GetBytes(shortNumber);

或者,如果您需要 Big-Endian 排序:

var bigEndianBytes = new[]
{
    (byte) (shortNumber >> 8), 
    (byte) (shortNumber & byte.MaxValue)
};

关于c# - 在 C# 中将大数转换为两个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14008437/

相关文章:

ruby - 使用 SQL 的 EventMachine 服务器和串口

python 到 arduino 串口读写

c# - 使用异步创建隐式任务?

c# - unity2d : Character moves in different speeds on different phones. ..(Deltatime?)

c# - 如何在 Entity Framework 中使用 'In' SQL 关键字?

c# - 如何停止线程?

c# 设置 TextBox 的 FontSize

vb.net - 如何为 vb.net 的 richtextbox 中的单词制作自定义智能感知

linux - 串口 : How to adjust serial port buffer size in kernel space

c# - 检查TextBox是否为空并返回MessageBox?