c# - 如何将 "Add"两个字节放在一起

标签 c# byte

我有一个奇怪的场景(更多详细信息请参见 this answer),我需要将两个字节的数据加在一起。显然这不是正常添加。这是场景:

我正在尝试从控件中获取坐标。当控件的宽度小于 256 时,x 坐标占用一个字节,否则占用两个字节。

所以,我现在有一个宽度大于 256 的控件实例。如何将这两个数字相加?

例如:

  • 2 + 0 不是 2 因为 2 是高字节(或者它可能是低字节而它是 2...)

我说的有道理吗?如果是这样,我如何在 C# 中执行这种加法?


更新:抱歉这个令人困惑的问题。我想我明白了。请参阅下面我的回答。

最佳答案

乘法的方法非常清晰,但在按位字中并不常见,而您使用 BitConverter 的方法采用字节数组,这在许多情况下并不方便。

执行此操作的最常见(也是最简单的方法)- 使用按位运算符:

var r = (high << 8) | low;

并记住 byte ordering因为并不总是很明显哪个字节是高字节,哪个字节是低字节。

关于c# - 如何将 "Add"两个字节放在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3859094/

相关文章:

Swift:字节数组到十进制值

ios - dataWithBytesNoCopy 和 dataWithBytes 之间的区别?

c# - 将 byte[] 从 Android 应用程序传递到 C# 控制台应用程序?

c# - ASP.NET MVC 4 代码优先,如何使用代码优先添加表

c# - 无论实际响应如何,Polly 重试策略结果始终成功

c# - 使用 Entity Framework 4 选择具有非标量键列表的多行的好方法

c# - Byte[] 到 String 到 Byte[] —— 怎么做?

c - 为什么会出现取消引用指针错误?

C#:为什么范围的上限是互斥的?

c# - aspnet 核心集成测试返回 404