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);
相关推荐
海棠AI实验室几秒前
Python 学习路线图:从 0 到 1 的最短闭环
开发语言·python·学习
Macbethad3 分钟前
技术报告:加密算法实现与性能优化研究
开发语言
玄同7653 分钟前
Python 函数:LLM 通用逻辑的封装与复用
开发语言·人工智能·python·深度学习·语言模型·自然语言处理
是你的小橘呀7 分钟前
单页应用路由怎么搞?React Router 从原理到实战全解析!
前端·javascript
风止何安啊7 分钟前
Set/Map+Weak三剑客的骚操作:JS 界的 “去重王者” ,“万能钥匙”和“隐形清洁工”
前端·javascript·面试
lkbhua莱克瓦249 分钟前
基础-事务
开发语言·数据库·笔记·mysql·事务
xxxmine11 分钟前
ConcurrentHashMap 和 Hashtable 的区别详解
java·开发语言
阿猿收手吧!18 分钟前
【C++】brpc与grpc对比
开发语言·c++
2501_9444460019 分钟前
Flutter&OpenHarmony文本输入组件开发
前端·javascript·flutter
会员果汁32 分钟前
算法-拓扑排序-C
c语言·开发语言·算法