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);
相关推荐
oy_mail8 小时前
QoS质量配置
开发语言·智能路由器·php
oyzz1208 小时前
PHP操作redis
开发语言·redis·php
nashane8 小时前
HarmonyOS 6学习:网络能力变化监听与智能提示——告别流量偷跑,打造贴心网络感知应用
开发语言·php·harmony app
凌波粒9 小时前
Java 8 “新”特性详解:Lambda、函数式接口、Stream、Optional 与方法引用
java·开发语言·idea
前端一小卒9 小时前
前端工程师的全栈焦虑,我用 60 天治好了
前端·javascript·后端
拾贰_C10 小时前
【Google | Gemini | API | POST】怎么使用Google 的Gemini API (原生版)
开发语言·lua
t***54411 小时前
如何在Dev-C++中选择Clang编译器
开发语言·c++
橙子1991101611 小时前
Java 基础相关
java·开发语言
coderyi11 小时前
LLM Agent 浅析
前端·javascript·人工智能