好吧,“Endianness”主题总是让我有点困惑,但我从来没有遇到过任何需要我考虑我使用的二进制写入器/读取器的默认行为的问题。我现在正在用 c# 编写一个 PNG 解码器。PNG文件格式规范规定所有数字都以大端符号存储(我觉得这很自然)。然而,当我注意到 .NET 的 BinaryReader/Writer 使用小端符号时,我感到非常惊讶。更让我困惑的是,java 的二进制 IO 使用大端符号(我不是 java 程序员,所以也许我错了)。于是我开始思考以下问题:
1 - 为什么事情是这样的?我的意思是基类库的默认行为。2 - 为什么在使用 .NET 的 System.IO 时无法选择首选符号?
我目前正在使用Jon Skeet 的 MiscUtil,它就像一个魅力(谢谢,man =))。但是在基类库中看到这个功能会很酷。