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);
相关推荐
inferno2 分钟前
JavaScript 基础
开发语言·前端·javascript
派大鑫wink9 分钟前
【Day15】集合框架(三):Map 接口(HashMap 底层原理 + 实战)
java·开发语言
开发者小天13 分钟前
React中useMemo的使用
前端·javascript·react.js
1024肥宅14 分钟前
JS复杂去重一定要先排序吗?深度解析与性能对比
前端·javascript·面试
派大鑫wink17 分钟前
【Day14】集合框架(二):Set 接口(HashSet、TreeSet)去重与排序
java·开发语言
sort浅忆37 分钟前
deeptest执行接口脚本,添加python脚本断言
开发语言·python
趣知岛38 分钟前
JavaScript性能优化实战大纲
开发语言·javascript·性能优化
im_AMBER44 分钟前
weather-app开发手记 04 AntDesign组件库使用解析 | 项目设计困惑
开发语言·前端·javascript·笔记·学习·react.js
lkbhua莱克瓦241 小时前
MySQL介绍
java·开发语言·数据库·笔记·mysql
小沐°1 小时前
vue3-ElementPlus出现Uncaught (in promise) cancel 报错
前端·javascript·vue.js