C# byte转int:大小端读取

发布时间:2024年01月20日

参考:byte[]数组和int之间的转换

大端模式和小端模式是计算机存储多字节数据时的两种方式。内存地址从小往大增长。
大端模式:最高有效(最高位)的字节存放在最小地址上,其他字节依次向后排列。读取时,最先读到的是最重要的字节。
小端模式:最不重要的字节存放在最小地址上,其他字节依次向前排列。

Byte转为INT

小端存储方式转int

// 示例字节数组,表示小端存储的整数
byte[] bytes = new byte[] { 0x0E, 0x00, 0x00, 0x00 }; 
int value =BitConverter.ToInt32(bytes,0);	// 方法1:系统函数(字节数组,起始位置)
Console.WriteLine("1-小端存储值为{0}",value);

// 或者方法2
value = 0;
for (int i = 0; i < 4; i++)
{
    value |= (bytes[i] & 0xFF) << (i * 8);
}
Console.WriteLine("2-小端存储的值为{0}",value);

输出:

1-小端存储值为14
2-小端存储的值为14

系统函数参考这里

大端存储方式转int

// 示例字节数组,表示小端存储的整数
byte[] bytes = new byte[] { 0x0E, 0x00, 0x00, 0x00 }; 

// 方法一
Array.Reverse(bytes); // 反转字节数组顺序
int value =BitConverter.ToInt32(bytes,0);
Console.WriteLine("3-大端存储值为{0}",value);


bytes = new byte[] { 0x0E, 0x00, 0x00, 0x00 }; 
value = 0;
// 或者方法二
for (int i = 0; i < 4; i++)
{
    // 将字节值合并到结果整数中,注意字节顺序的反转
    value |= (bytes[i] & 0xFF) << ((3 - i) * 8); 
}
Console.WriteLine("4-大端存储的值为{0}",value);

输出:

3-大端存储值为234881024
4-大端存储的值为234881024
文章来源:https://blog.csdn.net/weixin_42433809/article/details/135652824
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。