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);
相关推荐
MediaTea2 分钟前
Python 第三方库:matplotlib(科学绘图与数据可视化)
开发语言·python·信息可视化·matplotlib
JS.Huang17 分钟前
【JavaScript】原生函数
开发语言·javascript·ecmascript
533_1 小时前
[vue] dayjs 显示实时时间
前端·javascript·vue.js
CoderCodingNo1 小时前
【GESP】C++五级考试大纲知识点梳理, (5) 算法复杂度估算(多项式、对数)
开发语言·c++·算法
星河队长1 小时前
VS创建C++动态库和C#访问过程
java·c++·c#
ftpeak2 小时前
JavaScript性能优化实战
开发语言·javascript·性能优化
William_cl2 小时前
【C# MVC 前置】异步编程 async/await:从 “卡界面” 到 “秒响应” 的 Action 优化指南(附微软官方避坑清单)
microsoft·c#·mvc
一个很帅的帅哥2 小时前
JavaScript事件循环
开发语言·前端·javascript
驰羽2 小时前
[GO]gin框架:ShouldBindJSON与其他常见绑定方法
开发语言·golang·gin
程序员大雄学编程2 小时前
「用Python来学微积分」5. 曲线的极坐标方程
开发语言·python·微积分