当前位置: 首页 > news >正文

C#中获取字节数据的高字节和低字节

字节顺序(Endianness)

1.小端序(Little-Endian):低字节在前(x86架构)

2.大端序(Big-Endian):高字节在前(网络字节序)

特性小端序(Little-Endian)大端序(Big-Endian)
存储顺序低字节在前高字节在前
常见架构x86/x64(Intel/AMD)网络协议(TCP/IP)
C# 检测BitConverter.IsLittleEndian == trueBitConverter.IsLittleEndian == false
转换方法BitConverter(默认)Array.Reverse() 或手动移位

如何判断当前系统的字节序?C# 提供了 BitConverter.IsLittleEndian 来检测当前系统的字节序:

if (BitConverter.IsLittleEndian)
{
    Console.WriteLine("当前系统是小端序(Little-Endian)");
}
else
{
    Console.WriteLine("当前系统是大端序(Big-Endian)");
}

在C#中,你可以使用位操作来获取16位或更大数值的高字节和低字节部分。以下是几种常见的方法:

对于16位整数(ushort/short)

方法一:

ushort value = 0xABCD; // 示例值
// 方法1:使用位操作
byte lowByte = (byte)(value & 0xFF);      // 低字节 0xCD
byte highByte = (byte)((value >> 8) & 0xFF); // 高字节 0xAB

方法二: 

小端序(Little-Endian)-低字节在前,高字节在后:

ushort value = 0xABCD;
// 方法2:使用BitConverter
byte[] bytes = BitConverter.GetBytes(value); // 默认按系统字节序(x86是小端序)
// 小端序存储:[低字节, 高字节] => [0xCD, 0xAB]
byte lowByte = bytes[0];  // 0xCD(低字节)
byte highByte = bytes[1]; // 0xAB(高字节)

大端序(Big-Endian)-高字节在前,低字节在后

ushort value = 0xABCD;
// 方法2:使用BitConverter
byte[] bytes = BitConverter.GetBytes(value); // 如果系统是大端序
// 大端序存储:[高字节, 低字节] => [0xAB, 0xCD]
byte lowByte = bytes[1];  // 0xCD(低字节)
byte highByte = bytes[0]; // 0xAB(高字节)

对于32位整数(uint/int)

uint value32 = 0x12345678;
// 获取4个字节
byte byte0 = (byte)(value32 & 0xFF);         // 最低字节 0x78
byte byte1 = (byte)((value32 >> 8) & 0xFF);  // 0x56
byte byte2 = (byte)((value32 >> 16) & 0xFF); // 0x34
byte byte3 = (byte)((value32 >> 24) & 0xFF); // 最高字节 0x12

相关文章:

  • MyBatis-Plus LambdaQueryWrapper 详解:优雅构建类型安全的查询条件
  • 3.25学习总结 抽象类和抽象方法+接口+内部类+API
  • 常用的离散时间傅里叶变换(DTFT)对
  • 网络相关的知识总结1
  • 【Tauri2】002——Cargo.toml和入口文件
  • 【C++】智能指针
  • 计算机组成原理———I\O系统精讲<1>
  • 【redis】哨兵:docker搭建redis环境,容器的编排方式
  • 3D-ViTac:通过视觉-触觉感知学习精细操作
  • 反射机制概述和代码举例
  • 数据库索引相关的面试题以及答案
  • python裁剪nc文件数据
  • Codeforces Round 1011 (Div. 2)
  • shopify跨境电商行业前景与规模
  • 类和对象—封装
  • 【算法】动态规划:回文子串问题、两个数组的dp
  • RWEQ+集成技术在风蚀模数估算中的全流程增强策略—从数据融合到模型耦合的精细化操作指南
  • 05、Tools
  • OSI模型_TCP/IP模型_五层模型
  • Thales靶场
  • 免费b2b网站要怎么做/seoul national university
  • 开放大学门户网站建设/网络营销方式包括哪些
  • 网站建设内部风险分析/百度指数明星人气榜
  • 个体户可以做网站吗/站长之家app
  • wordpress可以添加字段吗/北京seo怎么优化
  • 廊坊专业做网站/优化网络