C# - How to convert 10 bytes to unsigned long

Posted by Justin on Stack Overflow See other posts from Stack Overflow or by Justin
Published on 2010-05-13T23:47:25Z Indexed on 2010/05/13 23:54 UTC
Read the original article Hit count: 202

Filed under:

Hey,

I have 10 bytes - 4 bytes of low order, 4 bytes of high order, 2 bytes of highest order - that I need to convert to an unsigned long. I've tried a couple different methods but neither of them worked:

Try #1:

var id = BitConverter.ToUInt64(buffer, 0);

Try #2:

var id = GetID(buffer, 0);

long GetID(byte[] buffer, int startIndex)
        {
            var lowOrderUnitId = BitConverter.ToUInt32(buffer, startIndex);
            var highOrderUnitId = BitConverter.ToUInt32(buffer, startIndex + 4);
            var highestOrderUnitId = BitConverter.ToUInt16(buffer, startIndex + 8);
            return lowOrderUnitId + (highOrderUnitId * 100000000) + (highestOrderUnitId * 10000000000000000);
        }

Any help would be appreciated, thanks!

© Stack Overflow or respective owner

Related posts about c#