Download Floating point numer..

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Floating point numerical
information
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_floatingpoint_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
System.out.println("Hello Class");
"x"
number:");
System.out.println(" The variable x contains this
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:
double
x;
is the following:
• 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.)
• Example
• When the Java program is run, it starts with the main()
method:
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:
• The assignment statement in the Java programming
language instructs the computer to update the value
stored in a variable
• Syntax of an assignment statement:
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 semicolon ";"
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/V
ar02.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.)
Output:
Hello Class
The variable x contains this number:
3.1415
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
double x = 0.31415e1, y, z =
2.71828;
Notice the comma (,) separating the variable names.
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.