toint32 bytes c# .net vb.net endianness

c# - bytes - Problema de BinaryWriter Endian



byte[] to int (2)

Estoy usando la clase BinaryWriter para escribir un archivo binario en el disco. Cuando invoco el método Write, pasando un valor corto unsigned, lo escribe en formato little-endian. Por ejemplo:

bw.Write(0xA000);

escribe el valor en el archivo binario como 0x00 0xA0. ¿Hay alguna manera de hacer que BInaryWriter use Big Endian? Si no, ¿es posible crear una nueva clase, heredar BinaryWriter y sobrecargar la función Write para que escriba big endian?



Puedes usar mi EndianBinaryWriter en MiscUtil . Eso le permite especificar el endianness que desea. También hay EndianBinaryReader y EndianBitConverter .

EndianBinaryWriter writer = new EndianBinaryWriter(EndianBitConverter.Big, stream); writer.Write(...);

No se deriva de BinaryWriter , por razones dadas en una publicación de blog .