c# 把4个byte,通过左移成一个int,再用右移还原4个byte
时间: 2024-02-28 17:52:24 浏览: 129
C语言如何将int转byte类型
5星 · 资源好评率100%
可以通过以下代码实现:
```csharp
byte b1 = 0x12;
byte b2 = 0x34;
byte b3 = 0x56;
byte b4 = 0x78;
int value = (b1 << 24) | (b2 << 16) | (b3 << 8) | b4;
byte rb1 = (byte)(value >> 24);
byte rb2 = (byte)((value >> 16) & 0xFF);
byte rb3 = (byte)((value >> 8) & 0xFF);
byte rb4 = (byte)(value & 0xFF);
```
这里先将 4 个字节按照大端序组成一个整数值 `value`,然后再将 `value` 拆分为 4 个字节。拆分的方法和上一个问题中的相同,只是将变量名改为了 `rb1`、`rb2`、`rb3` 和 `rb4`,表示还原后的 4 个字节。
需要注意的是,在将一个字节类型的变量左移时,需要先将其转换为 `int` 类型,否则左移操作会被解释器视为移动 8 个二进制位。同样地,在将一个整数类型的变量右移时,需要将其转换为字节类型,否则右移操作会被解释器视为移动 32 个二进制位。
阅读全文