uint64_t in Serial.print

add this to print.cpp and the signatures to print.h - be aware long long is slow slow :wink:

void Print::println(long long n, int base)
{
  print(n, base);
  println();
}


void Print::print(long long n, int base)
{
  if (n < 0) write('-');
  if (base == 0) write(n);
  else printLLNumber(n, base);
}


void Print::println(unsigned long long n, int base)
{
  print(n, base);
  println();
}


void Print::print(unsigned long long n, int base)
{
  if (base == 0) write(n);
  else printLLNumber(n, base);
}



void Print::printLLNumber(unsigned long long n, uint8_t base)
{
  unsigned char buf[16 * sizeof(long)]; // Assumes 8-bit chars. 
  unsigned long long i = 0;

  if (n == 0) {
    print('0');
    return;
  } 

  while (n > 0) {
    buf[i++] = n % base;
    n /= base;
  }

  for (; i > 0; i--)
    print((char) (buf[i - 1] < 10 ?
      '0' + buf[i - 1] :
      'A' + buf[i - 1] - 10));
}