Bene, il tema "Endianness" mi ha sempre dato un po 'di confusione, ma non ho mai dovuto affrontare problemi che mi hanno costretto a pensare al comportamento predefinito degli scrittori/lettori binari che ho usato. Sto scrivendo un decoder PNG in C# in questo momento. La specifica del formato di file PNG afferma che tutti i numeri sono memorizzati in una notazione big endian (che trovo molto naturale). Tuttavia, sono rimasto molto sorpreso quando ho notato che BinaryReader/Writer di .NET funziona con una notazione little endian. Ciò che mi ha confuso ancora di più è stato il fatto che l'IO binario di java funziona con una notazione big endian (non sono un programmatore java, quindi forse ho torto). Così ho iniziato a pensare alle seguenti domande:Endianness nei linguaggi di programmazione
1 - Perché le cose sono come sono? Intendo un comportamento predefinito della libreria di classi base. 2 - Perché non c'è modo di scegliere una notazione preferita quando si utilizza System.IO di .NET.
Attualmente sto usando Jon Skeet'sMiscUtil e funziona come un incantesimo (grazie, man =)). Ma sarebbe bello vedere questa funzionalità in una libreria di classi base.
Che cos'è un BCL ..? –
Libreria di classi base – n535
Inoltre, trovo che big endian sia il più naturale. –