floating point numerical information. previously discussed recall that: a byte is a memory cell...
TRANSCRIPT
Previously discussed
• Recall that:
• A byte is a memory cell consisting of 8 switches and can store a binary number
(See:http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/01/binary.html)
Previously discussed (cont.)
• Although the computer stores binary numbers, we can interpret then as decimal number through a conversion operation:
Previously discussed (cont.)
• The computer can combine adjacent bytes in the RAM memory to form larger memory cells
Previously discussed (cont.)
• Although a computer memory can only store numbers, we can use an encoding scheme to represent any kind of information
(E.g.: marital status information: 0 = single, 1 = married, and so on... gender information: 0 = male, 1 = female)
• We must have context information to interpret a number that is stored in the RAM memory
(E.g., we cannot interpret the number 0 stored in RAM memory unless we know kind of information it is.)
Storing information inside a computer
• A Java computer program uses variables to store information
• There are different kinds (types) of variables
• In this webnote, we will study the floating point variables
Variables (in general)
• Variable in Java
• A variable in a computer program is in fact a memory cell
A memory cell can store a number
• A variable in a computer program stores a number
Variables (in general) (cont.)
• Each variable in Java has a data type
The data type allows the computer program to use the appropriate encoding (interpretation) scheme to interpret the number stored in the variable
Analogy of a variable
• A variable (in Computer Science) is like a piece of paper with a tag attached to it.
• The tag represents the data type of the variable (the value of the tag cannot be changed)
• You can only write one (binary) number on the piece of paper.
• You can erase the number and write a new number on the paper; but you can never write more than one number on the paper at any time.
Floating point numbers
• A floating point number is a number where the number of decimal digits before and after the decimal point is not fixed (i.e., it "floats")
• Examples:
1234.5 1 decimal digits after the decimal point
0.087 3 decimal digits after the decimal point
3.1415 5 decimal digits after the decimal point
Floating point numbers (cont.)
• Floating point numbers can also be written in the exponent form:
0.31415e1 (= 0.31415×101 = 3.1415)
31.415e-1 (= 31.415×10-1 = 3.1415)
Floating point variables
• A double precision floating point variable is a variable that:
• uses 8 consecutive bytes of memory as a single 64 bit memory cell
• uses a modified binary number system as encoding scheme
• For more details on the floating point encoding method, please take CS255
Floating point variables (cont.)
• A double precision floating point variable can represent a floating point number:
• in range of from −10308 to 10308
• and with about 15 decimal digits accuracy
This kind of variable is commonly used in scientific computations.
A calculator uses double precision floating point variables.
(I used a double precision floating point variable to avoid using the casting operation - casting will be explained later)
Floating point variables (cont.)
• Important fact:
• A floating point variable behaves like a piece of paper where you can record (exactly) one floating point number
Floating point variables (cont.)
• BTW, that's how you perceive a double typed variable. Inside the computer, the number is represented with bits. It looks something like this:
The encoding method used is called the IEEE 754 Standard - See: http://en.wikipedia.org/wiki/Double_precision_floating-point_format
Defining floating point variables
• Every variable in Java must be defined
This rule applies to a floating point variable.
Also, you must use the correct syntax construct to write a variable definition
Defining floating point variables (cont.)
• Syntax to define an floating point variable:
• Notes:
• double NameOfVariable ;
• The keyword double announces the variable definition clause
• The NameOfVariable is an identifier which is the name of the variable.
• The variable definition clause is must be ended with a semi-colon ";"
Defining floating point variables (cont.)
• Example:
public class Var01
{
public static void main(String[] args)
{
double x; // Define floating point variable with name "x" System.out.println("Hello Class");
System.out.println(" The variable x contains this number:");
System.out.println(x); // Print variable "x“
}
}
Defining floating point variables (cont.)
• Notes:
• The name of the Java program is Var01 Therefore, the UNIX filename that contain this Java program must be: Var01.java
• The statement "System.out.println(x);" will print the content of the variable x to the terminal
• Notice that the statement "System.out.println(x);" does not uses quotes ".." around the variable x
• The statement "System.out.println("x");" (with quotes ".." around x) will print the text x
Effect of a variable definition clause
• When a Java program starts to run inside the computer, it will use up a portion of the RAM memory to store various things
A (large) portion of the RAM memory will remain unused
Effect of a variable definition clause (cont.)
• The effect of the definition:
is the following:
double x;
• The computer will find 8 consecutive bytes of RAM memory that is unused
• The computer will then reserve these memory bytes
Effect of a variable definition clause (cont.)
• It also associate the name x with the (8 bytes of) reserved memory
• Whenever the Java program uses the name x, the computer will translate that into read/write operations to these (8 bytes of) reserved memory
Effect of a variable definition clause (cont.)
• The computer can store (exactly) one floating point number in the reserved memory bytes.
That is why:
• A floating point variable behaves like a piece of paper where you write down (exactly) one floating point number
Effect of a variable definition clause (cont.)
• When the Java program is run, it starts with the main() method:
• Example
Effect of a variable definition clause (cont.)
A portion of the RAM memory is used.
But a large portion will be unused
Effect of a variable definition clause (cont.)
• When the variable definition "double x" is processed, it causes the computer to reserve consecutive 8 bytes of RAM memory:
Effect of a variable definition clause (cont.)
These 8 bytes of reserved memory can now be referred to by the name x !!!
(How this is done exactly will be explained in CS255)
Update the value stored in a variable
• Assignment statement:
• Syntax of an assignment statement:
• The assignment statement in the Java programming language instructs the computer to update the value stored in a variable
VariableName = Value ;
Update the value stored in a variable (cont.)
• Notes:
• The symbol "=" is called the assignment operator in Java
• The variable on left-hand-side of the "=" operator is the receiving variable
• The expression on right-hand-side of the "=" operator is the value that is assigned to the receiving variable
• The assignment statement must be ended with a semi-colon ";"
Update the value stored in a variable (cont.)
• Meaning of the assignment statement:
• The expression on the RHS of the "=" operator is first computed
• The computed value is then assigned to the receiving variable
Update the value stored in a variable (cont.)
• Example:public class Var02
{
public static void main(String[] args)
{
double x; // Define floating point variable with name "x" x = 0.31415e1; // Assign 3.1415 to x
System.out.println("Hello Class");
System.out.println(" The variable x contains this number:");
System.out.println(x); // Print variable "x"
}
}
Update the value stored in a variable (cont.)
• Notes:
• The name of the Java program is now Var02
Therefore, the UNIX filename that contain this Java program must be: Var02.java
(I will not make this comment anymore from this point on...)
Update the value stored in a variable (cont.)
• Example:
When the variable definition "double x" is processed, it causes the computer to reserve consecutive 8 bytes of RAM memory:
Update the value stored in a variable (cont.)
• These 8 bytes of reserved memory can now be referred to by the name x !!!
Update the value stored in a variable (cont.)
• The assignment statement x=0.31415e1 will store the value 3.1415 into the memory cell identified by the name x:
Update the value stored in a variable (cont.)
• The Print statement System.out.println(x) will read the value stored at the memory cell identified by the name x and print it to the terminal:
Update the value stored in a variable (cont.)
• Example Program: (Demo above code) – Prog file:
http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/04/Progs/Var02.java
• How to run the program:
Right click on link and save in a scratch directory
• To compile: javac Var02.java
• To run: java Var02
Update the value stored in a variable (cont.)
Hello Class
The variable x contains this number:
3.1415
Output:
Defining and initializing a variable at the same time
• When a variable is defined, it does not contain a legitimate value
• You can give an initial value to a variable when you define the variable
• Syntax to define an initialized double precision floating point variable:
double varName = initialValue ;
Defining and initializing a variable at the same time (cont.)
• Example:
public class Var03 { public static void main(String[] args) { double x = 0.31415e1; // Define an initialized variable
System.out.println("Hello Class"); System.out.println(" The variable x contains this number:"); System.out.println(x); // Print variable "x" } }
Defining multiple variables of the same type
• You can define multiple variables of the same type with multiple clauses
Defining multiple variables of the same type (cont.)
• Example: defining 3 variables
public class Var04 { public static void main(String[] args) { double x = 0.31415e1; // <----- Focus here double y; double z = 2.71828;
y = 1.0;
System.out.println(x); // Print variable "x" System.out.println(y); // Print variable "y" System.out.println(z); // Print variable "z" } }
Defining multiple variables of the same type
• You can also define multiple variables of the same type with one clauses by separating the different variable names with a comma.
Example: defines that same 3 variables with 1 clause
Notice the comma (,) separating the variable names.
double x = 0.31415e1, y, z = 2.71828;
Defining multiple variables of the same type (cont.)
Example: defines that same 3 variables with 1 clause
public class Var04 { public static void main(String[] args) { double x = 0.31415e1, y, z = 2.71828; // <----- Focus here
y = 1.0;
System.out.println(x); // Print variable "x" System.out.println(y); // Print variable "y" System.out.println(z); // Print variable "z" } }
Notice the comma (,) separating the variable names.