diff options
| author | Clement Sibille <clements+git@lisible.xyz> | 2024-05-20 00:52:17 +0900 |
|---|---|---|
| committer | Clement Sibille <clements+git@lisible.xyz> | 2024-05-20 01:28:21 +0900 |
| commit | 2d813cc4c26af142bcfaabdf654371e7801f6491 (patch) | |
| tree | cbbf8cbb2af9554d7215e96a63fcc213d05c853a /src/lisiblestd/bytes.c | |
| parent | bd22b018c841cddf4eb8e1dae48eb14eef850523 (diff) | |
Add bytes module
Diffstat (limited to 'src/lisiblestd/bytes.c')
| -rw-r--r-- | src/lisiblestd/bytes.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/lisiblestd/bytes.c b/src/lisiblestd/bytes.c new file mode 100644 index 0000000..0860800 --- /dev/null +++ b/src/lisiblestd/bytes.c @@ -0,0 +1,24 @@ +#include "bytes.h" +#include "assert.h" +#include <string.h> + +u32 u32_from_bytes(const u8 *bytes) { + LSTD_ASSERT(bytes != NULL); + return (bytes[0] << 24) + (bytes[1] << 16) + (bytes[2] << 8) + bytes[3]; +} +u32 u32_from_bytes_le(const u8 *bytes) { + LSTD_ASSERT(bytes != NULL); + return (bytes[3] << 24) + (bytes[2] << 16) + (bytes[1] << 8) + bytes[0]; +} + +u16 u16_from_bytes_le(const u8 *bytes) { + LSTD_ASSERT(bytes != NULL); + return (bytes[1] << 8) + bytes[0]; +} + +float float_from_bytes_le(const u8 *bytes) { + LSTD_ASSERT(bytes != NULL); + float result; + memcpy(&result, bytes, sizeof(float)); + return result; +} |
