C#里怎样将Big Endian 转换为 Little Endian的字节读取顺序?

ArcJeremy 2005-04-08 01:40:34
我在读一个文件头的时候发现有些字段是Big Endian顺序的(都为int或double型)
想把它转换为Little Endian的读取顺序,不知道.net 类库里有没有相关的类方法之类的还是只能老老实实自己写一个?
...全文
886 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
owe 2005-04-13
  • 打赏
  • 举报
回复
//读取一个Int32型
private int ReadIntByByte( BinaryReader bReader)
{
byte[] b = new byte[4];
for(int i = 3; i >= 0; i--)
{
b[i] = bReader.ReadByte();
}
return BitConverter.ToInt32(b, 0);
}
demonfox 2005-04-13
  • 打赏
  • 举报
回复
是吗?我没有亲自试过,你有测试文件么?发一个给我,我试试看:
yin_hu@msn.com
ArcJeremy 2005-04-13
  • 打赏
  • 举报
回复
TO:demonfox(坐井观天)
我在MSDN里也查到了这个方法,但是好像不行。不知道是我的系统问题还是什么不管我用Unicode文本文件还是二进制文件都还是以Little Endian的方式读。

TO:xiaohaige(无聊聊)
这个方法不错也很方便,调试也通过了。不过我还有Double类型的,MSDN里介绍好像只支持short,int,long这三个类型。
wjcking 2005-04-09
  • 打赏
  • 举报
回复
up
demonfox 2005-04-09
  • 打赏
  • 举报
回复
可以的,只要是2个bytes的倍数就可以(就是偶数个bytes,int和double都是4bytes),如果是ASCII Code(1个byte),就不行了。
xiaohaige 2005-04-08
  • 打赏
  • 举报
回复
用IPAddress的HostToNetworkOrder和NetworkToHostOrder
ArcJeremy 2005-04-08
  • 打赏
  • 举报
回复
我读的是二进制文件,里面都是int或者double类型~
这样行吗?
demonfox 2005-04-08
  • 打赏
  • 举报
回复
直接作为BigEndian读进来。不过下面的方法只能用于Unicode编码:

System.Text.Encoding encoding = System.Text.Encoding.BigEndianUnicode;
StreamReader reader = new StreamReader("TextFile.txt", encoding);
string line = reader.ReadLine();
while (line != null)
{
Console.WriteLine(line);
line = reader.ReadLine();
}
内容概要:本文围绕考虑阶梯式碳交易与供需灵活双响应的综合能源系统优化调度问题展开研究,提出了一种结合阶梯式碳交易机制与需求侧灵活响应能力的综合能源系统优化调度模型。通过引入阶梯式碳交易机制,激励系统减少碳排放,同时充分挖掘电、热、气等多能负荷的供需双侧灵活性,提升系统运行的经济性与环保性。采用Matlab进行仿真建模与求解,验证了所提模型在降低系统运行成本、提高可再生能源消纳能力和减少碳排放方面的有效性。研究内容涵盖目标函数构建、约束条件设定、多能耦合设备建模以及求解算法实现等关键环节,为低碳、高效、灵活的综合能源系统调度提供了理论支持和技术路径。; 适合人群:具备一定电力系统、能源系统或优化理论基础,从事相关领域研究的研究生、科研人员及工程技术人员,尤其适合关注碳交易机制、需求响应与综合能源系统优化的从业者。; 使用场景及目标:① 掌握阶梯式碳交易机制在综合能源系统调度中的建模方法;② 学习如何量化与整合供需双侧灵活性资源参与系统优化;③ 实现综合能源系统多目标优化调度的Matlab编程与仿真分析;④ 为实际能源系统低碳调度策略制定提供参考依据。; 阅读建议:建议读者结合Matlab代码深入理解模型构建细节,重点关注目标函数中碳交易成本项的设计、需求响应约束的数学表达以及求解过程中多能耦合关系的处理方式,可通过调整参数进行敏感性分析以加深对模型性能的理解。
项目资源包含:可运行源码+sql文件+LW; python3.8+django+mysql5.7+html 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 系统前台都设计实现了手机、智能手表、平板、帖子、畅销榜等这些功能。 系统后台都实现了权限认证、商品管理、订单管理、支付信息管理、购物车管理、用户管理等这些管理。 本项目是一个以Django框架为基础开发的数码性能站系统,专为希望深入学习Python、Django及Web开发技术的学习者设计。该系统资源完整,不仅提供了能够直接运行的源码,还配备了必要的SQL文件和学习资料,适合从初学者到进阶学习者使用,同时也适合作为毕业设计、课程设计、大型作业和工程实训的素材,亦可作为企业初期项目开发的参考。 该系统以数码产品为主题,构建了一个具备丰富功能的在线平台。在前台设计上,系统支持不同设备如手机、智能手表、平板电脑等多种客户端的访问,提供了一个友好的用户界面。用户能够浏览各类数码产品,并查看产品的详细信息、畅销排行等,提供了类似帖子功能,用户可以围绕产品展开交流讨论。 系统后台管理功能完善,提供了权限认证机制,确保了操作的安全性。通过后台管理平台,管理员可以高效地进行商品管理、订单管理、支付信息管理、购物车管理、用户管理等一系列操作。这些功能的实现,不仅为学习者提供了实践操作的机会,也为将来从事电商平台开发的开发者奠定了基础。 技术栈方面,该项目要求学习者具备一定的Python知识,版本为Python3.8,同时熟悉Django框架,并需要使用到mysql5.7数据库。前端开发则利用了HTML技术。整体上,该系统提供了从数据库设计到前端展示,再到后端逻辑处理的完整开发体验,能够帮助学习者全方位提升Web开发技能。 在项目资料方面,除了源码和数据库文件外,还包括了详细的项目使用说明和重要说明文档,帮助学习者更好地理解和操作整个系统。此外,还提供了旧版程序,便于对比学习和掌握技术演进的脉络。整个项目的设计理念是通过实践来加深对Django框架和Web开发的理解。 该项目是一个内容丰富、功能全面、实践性强的Web开发学习平台,非常适合想要系统学习和掌握Django开发的学生或开发者使用。无论是作为教学案例,还是实际项目练习,它都能提供很好的支持。
内容概要:本文围绕基于两阶段鲁棒优化算法的微网多电源容量配置展开研究,提出了一种能够有效应对可再生能源出力与负荷需求不确定性的优化方法。该方法通过构建包含风能、光伏、储能及柴油机等多种分布式电源的微电网系统模型,采用两阶段鲁棒优化框架,在第一阶段确定各电源的最优容量配置,在第二阶段针对不确定性因素进行调度调整,从而保证系统在各种运行场景下的可靠性与经济性。文中给出了完整的Matlab代码实现,结合YALMIP工具箱调用求解器进行建模求解,便于读者复现与拓展。研究还考虑了实际工程中常见的运行约束与技术限制,提升了方案的实用性。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事新能源、微电网、优化调度等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握两阶段鲁棒优化在微电网规划中的建模思路与实现技巧;② 学习如何处理风光出力不确定性问题;③ 借助开源代码快速搭建类似优化模型,应用于科研仿真或项目开发。; 阅读建议:建议结合文档中的代码逐行理解建模逻辑,重点关注不确定集合的构建、鲁棒对等转换过程以及YALMIP的语法应用,同时可尝试替换不同的电源类型或引入新的约束条件以深化学习效果。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧