如何添加3个字节并返回整数?

Gab*_*ves 2 c# int byte int32

让我们假设我有一个十六进制字符串

00 00 04 01 11 00 08 00 06 C2 C1 BC

有了这个,我需要生成第7个,第8个和第9个八位字节.十六进制是

00 06 C2

这个数字原来是1730.通过以下内容,我该如何简化?

byte b1 = 0x00;
byte b2 = 0x06;
byte b3 = 0xC2;

Console.WriteLine(Convert.ToInt32((Convert.ToString(b1, 16)) + (Convert.ToString(b2, 16)) + (Convert.ToString(b3, 16)), 16));
Run Code Online (Sandbox Code Playgroud)

我知道必须有一个更简单的方法.我试过Console.WriteLine((b1 + b2 + b3).ToString());但它不起作用.

Mat*_*son 8

尝试:

int result = b3 | (b2 << 8) | (b1 << 16);
Run Code Online (Sandbox Code Playgroud)

假设b1,b2和b3是byte您需要转换的值.

<<操作者移动其操作数由比特指定数目左.

  • 作为一个小注释:当处理`byte`算术时,`|`将优于`+`; 当涉及"否定"数字时(在设置MSB的地方)这可能很重要 (3认同)