如何将两个字节“相加”在一起

问题描述 投票:1回答:3

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

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

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

例如:

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

我说得通吗?如果是这样,如何在C#中进行这种加法?


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

c# byte
3个回答
2
投票

乘法的方法很清楚,但按位的单词并不常见,并且您使用BitConverter的方法采用字节数组,这在许多情况下不方便。

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

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

还要记住byte ordering,因为并不总是清楚哪个字节是高字节,哪个字节是低字节。


2
投票

您的意思是

256 * high + low


1
投票

以防万一其他人需要这个,我在找:

BitConverter.ToInt16

It takes two bytes and converts them to an integer

© www.soinside.com 2019 - 2024. All rights reserved.