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

时间:2010-10-04 21:05:29

标签: c# byte

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

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

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

例如:

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

我有道理吗?如果是这样,我怎样才能在C#中进行这种添加?


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

3 个答案:

答案 0 :(得分:2)

你的意思是

256 * high + low

答案 1 :(得分:2)

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

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

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

请记住byte ordering,因为并不总是很明显女巫字节很高而女巫很低。

答案 2 :(得分:1)

万一其他人需要这个,我一直在寻找:

BitConverter.ToInt16

It takes two bytes and converts them to an integer