/* 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
*
*/