C# 中读取byte[]转化成数字

读取网络字节流时候,使用BinaryReader的ReadInt32()方法时候发生了预期外的结果,查阅了微软文档发现是小端( )模式问题,可以通过System.Net.IPAddress.HostToNetworkOrder或BinaryPrimitives.ReadInt32BigEndian 方式来解决

以下示例代码,提供参考

csharp 复制代码
var sendNu = 1102;
var sendBuf = BitConverter.GetBytes(sendNu);
if (BitConverter.IsLittleEndian)
{
   var  sendBufByBig = sendBuf.Reverse().ToArray();
}
var bufByLittle = new byte[] { 77, 4, 0, 0 };
var bufByBig = bufByLittle.Reverse().ToArray();
var originalNu = BitConverter.ToInt32(bufByBig.Reverse().ToArray());

using var fs = new MemoryStream(bufByLittle);
var binReader = new BinaryReader(fs);
var orgVal = binReader.ReadUInt32();

var orgVal1 = BinaryPrimitives.ReadInt32BigEndian(bufByBig);
相关推荐
曹牧几秒前
C#中解析JSON数组
开发语言·c#·json
1024肥宅11 分钟前
JavaScript 数组原生方法手写实现
前端·javascript·ecmascript 6
汉堡大王952725 分钟前
JavaScript类型变形记:当代码开始“不正经”地转换身份
前端·javascript
while(1){yan}28 分钟前
多线程CAS八股文
java·开发语言·面试
用户930510658222428 分钟前
自造微前端
前端·javascript
之恒君29 分钟前
寄生组合继承 vs ES6 类继承 深度对比
前端·javascript
飞Link33 分钟前
【轻量拓展区】网络 QoS 与带宽、延迟、抖动:AI 推理的性能瓶颈
开发语言·网络·人工智能
用户516816614584134 分钟前
script 标签的异步加载:async、defer、type="module" 详解
前端·javascript
m0_4711996341 分钟前
【vue】dep.notify() 是什么意思?
前端·javascript·vue.js
Haoea!43 分钟前
jkd8特性
开发语言