Added byte order conversion functions (little and big endian).
This commit is contained in:
parent
1668e70c79
commit
99c3d258d4
41
src/array.c
41
src/array.c
@ -48,3 +48,44 @@ array_reverse_bits (unsigned char data[], unsigned int size)
|
||||
data[i] = j;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
unsigned int
|
||||
array_uint32_be (const unsigned char data[])
|
||||
{
|
||||
return (data[0] << 24) + (data[1] << 16) + (data[2] << 8) + data[3];
|
||||
}
|
||||
|
||||
|
||||
unsigned int
|
||||
array_uint32_le (const unsigned char data[])
|
||||
{
|
||||
return data[0] + (data[1] << 8) + (data[2] << 16) + (data[3] << 24);
|
||||
}
|
||||
|
||||
|
||||
unsigned int
|
||||
array_uint24_be (const unsigned char data[])
|
||||
{
|
||||
return (data[0] << 16) + (data[1] << 8) + data[2];
|
||||
}
|
||||
|
||||
|
||||
unsigned int
|
||||
array_uint24_le (const unsigned char data[])
|
||||
{
|
||||
return data[0] + (data[1] << 8) + (data[2] << 16);
|
||||
}
|
||||
|
||||
unsigned short
|
||||
array_uint16_be (const unsigned char data[])
|
||||
{
|
||||
return (data[0] << 8) + data[1];
|
||||
}
|
||||
|
||||
|
||||
unsigned short
|
||||
array_uint16_le (const unsigned char data[])
|
||||
{
|
||||
return data[0] + (data[1] << 8);
|
||||
}
|
||||
|
||||
18
src/array.h
18
src/array.h
@ -32,6 +32,24 @@ array_reverse_bytes (unsigned char data[], unsigned int size);
|
||||
void
|
||||
array_reverse_bits (unsigned char data[], unsigned int size);
|
||||
|
||||
unsigned int
|
||||
array_uint32_be (const unsigned char data[]);
|
||||
|
||||
unsigned int
|
||||
array_uint32_le (const unsigned char data[]);
|
||||
|
||||
unsigned int
|
||||
array_uint24_be (const unsigned char data[]);
|
||||
|
||||
unsigned int
|
||||
array_uint24_le (const unsigned char data[]);
|
||||
|
||||
unsigned short
|
||||
array_uint16_be (const unsigned char data[]);
|
||||
|
||||
unsigned short
|
||||
array_uint16_le (const unsigned char data[]);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user