大小端转换器
定义
命名空间:TouchSocket.Core
程序集:TouchSocket.Core.dll
一、基本概念
1. 大小端模式
-
大端模式 (Big Endian)
高位字节存储在内存低地址,低位字节存储在高地址。
*示例:整数10
的4字节大端表示为{0, 0, 0, 10}*
-
小端模式 (Little Endian)
低位字节存储在内存低地址,高位字节存储在高地址。
*示例:整数10
的4字节小端表示为{10, 0, 0, 0}
2. 端序类型枚举
public enum EndianType {
Big, // 标准大端
Little, // 标准小端
BigSwap, // 交换大端(特殊场景)
LittleSwap // 交换小端(特殊场景)
}
二、核心 API 使用
1. 直接指定端序转换器
// 预定义静态实例
TouchSocketBitConverter.BigEndian // 绝对大端
TouchSocketBitConverter.LittleEndian // 绝对小端
TouchSocketBitConverter.BigSwapEndian // 交换大端
TouchSocketBitConverter.LittleSwapEndian // 交换小端
2. 默认端序配置
// 默认小端模式(可全局修改)
TouchSocketBitConverter.DefaultEndianType = EndianType.Big;
// 获取当前默认转换器
TouchSocketBitConverter.Default.GetBytes(123);
三、基础数据类型转换
1. 数值类型转换
转换整型 (int
)
// int -> byte[]
byte[] data = TouchSocketBitConverter.BigEndian.GetBytes(0x12345678);
// byte[] -> int
int value = TouchSocketBitConverter.BigEndian.ToInt32(data, 0);
转换浮点型 (float
)
// float -> byte[]
float num = 3.14f;
byte[] bytes = TouchSocketBitConverter.LittleEndian.GetBytes(num);
// byte[] -> float
float result = TouchSocketBitConverter.LittleEndian.ToSingle(bytes, 0);
2. 长数据类型处理
转换长整型 (long
)
// long -> byte[]
long bigValue = 0x123456789ABCDEF0;
byte[] data = TouchSocketBitConverter.Default.GetBytes(bigValue);
// byte[] -> long
long restored = TouchSocketBitConverter.Default.ToInt64(data, 0);