© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•8mo ago•
1 reply
hugeman

Span reverse not working on variable

Hey, I'm trying to reverse the bytes of a float when the data endianness differs from the system endianness:
static float AsFloat(byte[] buffer, int offset, bool isDataLittleEndian) {
    float value = Unsafe.ReadUnaligned<float>(ref buffer[offset]);
    if (BitConverter.IsLittleEndian != isDataLittleEndian) {
        new Span<byte>(ref Unsafe.As<float, byte>(ref value)).Reverse();
    }
    return value;
}
static float AsFloat(byte[] buffer, int offset, bool isDataLittleEndian) {
    float value = Unsafe.ReadUnaligned<float>(ref buffer[offset]);
    if (BitConverter.IsLittleEndian != isDataLittleEndian) {
        new Span<byte>(ref Unsafe.As<float, byte>(ref value)).Reverse();
    }
    return value;
}


For some reason it doesn't work. However if I use BinaryPrimitive's
ReadSingleBigEndian
ReadSingleBigEndian
or
ReadSingleLittleEndian
ReadSingleLittleEndian
it works just fine. Anyone know why Reverse() doesn't modify the
value
value
variable?
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,871Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

asp attribute span not getting styled like plain span
C#CC# / help
15mo ago
collection expression on Span<T>
C#CC# / help
3y ago
Convert Span<string> to Span<object>
C#CC# / help
3mo ago
reverse
C#CC# / help
3y ago