byte_utils.c 530 B

12345678910111213141516171819
  1. #include "byte_utils.h"
  2. void format_int(unsigned char *out, unsigned int in, unsigned char length, unsigned char endianess) {
  3. int i, idx;
  4. for(i = 0; i < length; i++) {
  5. idx = endianess == MP_LITTLE_ENDIAN ? i : length - 1 - i;
  6. out[i] = (in & 0xFF << idx*8) >> idx*8;
  7. }
  8. }
  9. int load_int(unsigned char *buf, unsigned char length, unsigned char endianess) {
  10. int i, idx, result = 0;
  11. for(i = 0; i < length; i++) {
  12. idx = endianess == MP_LITTLE_ENDIAN ? i : length - 1 - i;
  13. result |= (buf[i] << idx*8);
  14. }
  15. return(result);
  16. }