Revision: 11574
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 9, 2009 22:21 by rengber
Initial Code
public static Int32 GetInt32(byte[] buffer, int offset, EndianType byteOrder) { if (byteOrder == EndianType.LittleEndian) { return buffer[offset + 1] << 8 | buffer[offset]; } else { return buffer[offset] << 8 | buffer[offset + 1]; } }
Initial URL
Initial Description
Found this in some code I've been maintaining/expanding. Quite clever. Picture an array of bytes in binary 00000111 11100000 00000000 00000000 Now picture an Int32 in Binary 00000000000000000000000000000000 To grab a Little Endian Integer (16 bits) out of the array. Take the second array element 11100000 Assign it to the Int32 variable 00000000000000000000000011100000 Bit shift it up by 8 00000000000000001110000000000000 Now OR it with the first Array element - could also just add. <pre> 00000000000000001110000000000000 or 00000000000000000000000000000111 = 00000000000000001110000000000111 </pre>
Initial Title
Extracting an Int from a Little Endian or Big Endian Byte Array
Initial Tags
math
Initial Language
C#