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);
相关推荐
robot_大菜鸟1 分钟前
python_openCV_计算图片中的区域的黑色比例
开发语言·python·opencv
6230_2 分钟前
关于HTTP通讯流程知识点补充—常见状态码及常见请求方式
前端·javascript·网络·网络协议·学习·http·html
Pandaconda27 分钟前
【C++ 面试 - 新特性】每日 3 题(六)
开发语言·c++·经验分享·笔记·后端·面试·职场和发展
chanTwo_0031 分钟前
go--知识点
开发语言·后端·golang
悟空丶12331 分钟前
go基础知识归纳总结
开发语言·后端·golang
北南京海42 分钟前
【C++入门(5)】类和对象(初始类、默认成员函数)
开发语言·数据结构·c++
pan_junbiao1 小时前
Vue组件:使用$emit()方法监听子组件事件
前端·javascript·vue.js
hummhumm1 小时前
数据库系统 第46节 数据库版本控制
java·javascript·数据库·python·sql·json·database
Mr_Xuhhh1 小时前
C语言深度剖析--不定期更新的第六弹
c语言·开发语言·数据结构·算法
No regret.1 小时前
JAVA基础:值传递和址传递
java·开发语言