Sto provando a trasmettere un array da 4 byte a un ulong in C#. Attualmente sto usando questo codice:C# Big-endian ulong da 4 byte
atomSize = BitConverter.ToUInt32(buffer, 0);
Il byte [4] contiene questo:
0 0 0 32
Tuttavia, i byte sono big-endian. C'è un modo semplice per convertire questo big-endian ulong in un little-endian ulong?
Grazie, forse potresti mostrarmi cosa stai facendo per linea? Sarebbe fantastico, non ho mai usato il bit shifting fino ad ora. – WesleyE
@WesleyE: l'ho riscritto per renderlo un po 'più chiaro. Gestisce un byte alla volta, maschera gli 8 bit e poi si sposta nella loro nuova posizione. I quattro byte vengono quindi aggiunti insieme per fornire il risultato. Se non capisci cos'è il bitshifting, ti consiglio di rispondere a questa domanda + risposta: http://stackoverflow.com/questions/141525/absolute-beginners-guide-to-bit-shifting –
È più veloce rimuovere le and-operations e cast a byte ogni volta. – usr