sizeOf function

int sizeOf(
  1. int value
)

Returns the minimum encoded size of the given unsigned long value.

@param value the unsigned long value (beware widening conversion of negatives!)

Implementation

int sizeOf(int value) {
  // if negative, it's actually a very large unsigned long value
  if (value < 0) return 9; // 1 marker + 8 data bytes
  if (value < 253) return 1; // 1 data byte
  if (value <= 0xFFFF) return 3; // 1 marker + 2 data bytes
  if (value <= 0xFFFFFFFF) return 5; // 1 marker + 4 data bytes
  return 9; // 1 marker + 8 data bytes
}