#include <stdio.h>
#include "BinConverter.h"

void main(void)
{
  char c = 'J';
  short s = 28490;
  int i = 1045220557;
  float f = 0.2F;
  double d = 0.0000000134110495599845150;

  BinConverter bc;

  printf("     Value     Type                     Bits\n");
  printf("-------------------------------------------------------\n");
  printf("%9s'%c'    %c  %35s\n", "", c, 'C', bc.CharToBin(c));
  printf("%12hi    %c  %35s\n", s, 'S', bc.ShortToBin(s));
  printf("%12i    %c  %35s\n", i, 'I', bc.IntToBin(i));
  printf("%12f    %c  %35s\n", f, 'F', bc.FloatToBin(f));

  printf("%12i    %c  %35s\n", 255, 'C', bc.CharToBin((unsigned char)255));
  printf("%12i    %c  %35s\n", -1, 'C', bc.CharToBin(-1));
  printf("%12i    %c  %35s\n", -128, 'C', bc.CharToBin(-128));
  printf("%12i    %c  %35s\n", 127, 'C', bc.CharToBin(127));

  i = (1 << 31);
  printf("%12i    %c  %35s\n", i, 'I', bc.IntToBin(i));
  printf("%12i    %c  %35s\n", -1, 'I', bc.IntToBin(-1));
  printf("%12i    %c  %35s\n", 2147483647, 'I', bc.IntToBin(2147483647));
  printf("%12i    %c  %35s\n", 0, 'I', bc.IntToBin(0));

  printf("\n\n");
  printf("FloatToIEEE754\n%f\n%s\n\n", f, bc.FloatToIEEE754(f));
  printf("DoubleToBin\n%.25f\n%s\n\n", d, bc.DoubleToBin(d));
  printf("DoubleToIEEE754\n%.25f\n%s\n", d, bc.DoubleToIEEE754(d));
}