/* NumericDataTypev1
   bits
   bytes,
   integers,unsigned int
   long, unsigned long
*/
//boolean is 1 bit, value of Zero or 1 
boolean myBoolean;
//Byte  value of 0 - 255 CANNOT BE NEGATIVE
byte myByte;
//int (short for integer) -32,768 to 32,767
int myInt;
//unsigned int 0 to 65,535 CANNOT BE NEGATIVE
unsigned int myUnsignedInt;
// long -2,147,483,648 to 2,147,483,647
long myLong;
// unsigned long 0 to 4,294,967,295 CANNOT BE NEGATIVE
unsigned long myUnsignedLong;
int q;
long w;
void setup() {
  // Serial.begin(9600) starts serial communication. 9600bps bits per second = 1200 characters per second
  Serial.begin(9600);
  //Send script name
  Serial.println("NumericDataTypev1...");
  //this will print a blank line
  Serial.println(" ");
}
void loop() {
 Serial.println("Byte overflows at 256");
  for (q = 0; q < 300; q++) {
    Serial.print("q: ");
    Serial.print(q);
    Serial.print(" myByte: ");
    Serial.print(myByte);
    Serial.print(" BIN q: ");
    Serial.println(myByte, BIN);
    myByte++;
  }
  delay(3000);
  //reset myByte ready for the next loop
   myByte = 0;
/*
  Serial.println("unsigned int overflows at 255");
  myUnsignedInt = 65449;
  for (w = 65450; w < 65600; w++) {
    myUnsignedInt++;
    Serial.print("w: ");
    Serial.print(w);
    Serial.print(" myUnsignedInt: ");
    Serial.print(myUnsignedInt);
    Serial.print(" BIN w: ");
    //prints the BINARY representation of myUnsignedInt
    Serial.println(myUnsignedInt, BIN);
  }
  delay(3000);
  Serial.println("");//blank line
  Serial.println("what happens when an int overruns in a negative direction?");
  //what happens when an int overruns in a negative direction?
  Serial.println(" myInt = -32768 ");
  myInt = -32768;
  Serial.println(" myInt = myInt - 1; ");
  myInt = myInt - 1;       // x now contains 32,767 - rolls over in neg. direction
  Serial.print(" myInt now equals: ");
  Serial.println(myInt);
  Serial.println("");//blank line
  Serial.println("what happens when an int overruns in positive direction?");
  //what happens when an int overruns in positive direction?
  Serial.println(" myInt = 32767 ");
  myInt = 32767;
  Serial.println(" myInt = myInt + 1; ");
  myInt = myInt + 1;       // x now contains -32,768 - rolls over
  Serial.print(" myInt now equals: ");
  Serial.println(myInt);
  delay(3000);
  Serial.println("");//blank line
  */
  
}
/* Number size calculations
 * VERY important when dealing with time
 * 
How many seconds in a minute = 60 (byte)
How many seconds in an hours = 60 x 60 = 3600 = (Integer)
How many seconds in a day = 60 * 60 * 24 = 86400 (long)
How many seconds in a year = 60 * 60 * 24 * 365 = 31,536,000 (long)
Even for an Arduino a second is a long time, we tend to use milliseconds
How many milliseconds in a second = 1000 = integer
How many milliseconds in a minute = 60 * 1000 = 60000 = long
How many milliseconds in an hours = 60 x 60 * 1000 =  3,600,000 = long
How many milliseconds in a day = 60 * 60 * 24 * 1000 = 86,400,000 (long)
How many milliseconds in a year = 60 * 60 * 24 * 365 * 1000 = 31,536,000,000 , BIGGER THAN A LONG
Millis reaches maximum in about 50 days using an unsigned long
                                        
                                        
microseconds() 1,000,000 per second will run out of space in 70 minutes using unsigned long
 * 
 */