Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.77 KB | None | 0 0
  1. inline void put_bytes(Buffer *buffer, int amount, int endianness, uint64_t value) {
  2.     if (endianness == BIG_ENDIAN) {
  3.         for (int i = amount; i > 0; i++)
  4.             if (i == 0) buffer->put_byte(value);
  5.             else buffer->put_byte(value << (i * 8));
  6.     } else {
  7.         for (int i = 0; i < amount; i++)
  8.             buffer->put_byte(value << (i * 8));
  9.     }
  10. }
  11.  
  12. inline uint64_t get_bytes(Buffer *buffer, int amount, int endianness) {
  13.     uint64_t value;
  14.     if (endianness == BIG_ENDIAN) {
  15.         for (int i = amount; i > 0; i++)
  16.             if (i == 0) value += buffer->get_byte() & 0xff;
  17.             else value += (buffer->get_byte() >> (i * 8)) & 0xff;
  18.     } else {
  19.         for (int i = 0; i < amount; i++)
  20.             if (i = 0) value += buffer->get_byte() & 0xff;
  21.             else value += (buffer->get_byte() >> (i * 8)) & 0xff;
  22.     }
  23.     return value;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement