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);
相关推荐
飞Link4 小时前
Python Pydantic V2 核心原理解析与企业级实战指南
开发语言·python
比昨天多敲两行4 小时前
C++ 多态
开发语言·c++
小贺要学前端4 小时前
ES6 还没用明白,JavaScript 已经快到 ES2026 了
前端·javascript·es6
、BeYourself5 小时前
Scala 字面量
开发语言·后端·scala
Amumu121385 小时前
JS:ES6~ES11基础语法(二)
开发语言·前端·javascript
Amumu121385 小时前
Js:ES6~ES11基础语法(一)
开发语言·前端·javascript
m0_569881475 小时前
跨语言调用C++接口
开发语言·c++·算法
zdl6865 小时前
搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程
开发语言·后端·golang
weixin_443478515 小时前
flutter组件学习之对话框与提示详解
javascript·学习·flutter