Integer numerical data types The integer data types

  • Slides: 24
Download presentation
Integer numerical data types

Integer numerical data types

The integer data types • The integer data types use the binary number system

The integer data types • The integer data types use the binary number system as encoding method • There a number of different integer types in Java

Integer operators • Integer operators are arithmetic operators that manipulate (operate on) integer values

Integer operators • Integer operators are arithmetic operators that manipulate (operate on) integer values • A integer operator only operates on integer values • The result of an integer operator is always an integer value

Priority and associativity of the integer arithmetic operators

Priority and associativity of the integer arithmetic operators

The integer data types • The computer can only perform operations on operands of

The integer data types • The computer can only perform operations on operands of the same date type: • Correct incorrect

Automatic conversions in Integer arithmetic • All values are converted to int type before

Automatic conversions in Integer arithmetic • All values are converted to int type before an arithmetic operation (+, −, *, /, %) in performed. • If one of the values in an arithmetic operation is long, then all values are converted to long type before the arithmetic operation in performed.

Safe Conversions • Safe conversions: • Unsafe conversions:

Safe Conversions • Safe conversions: • Unsafe conversions:

Automatic type conversion in the assignment operation • The safe integer conversions are:

Automatic type conversion in the assignment operation • The safe integer conversions are:

Summary of automatic conversion rules (1) • Integers: When an arithmetic operation contains 2

Summary of automatic conversion rules (1) • Integers: When an arithmetic operation contains 2 integer values, convert any lower precision integer type to int type When an arithmetic operation contains a long value, convert any lower precision integer type to long type • Floating point numbers (float and double): When an arithmetic operation contains 2 floating point values, convert any lower precision float type to double type

Summary of automatic conversion rules (2) • When an arithmetic operation contains one floating

Summary of automatic conversion rules (2) • When an arithmetic operation contains one floating point value and one integer value: convert the integer value to double convert the lower precision float type to double type

Summary of automatic conversion rules (3) • If the range of values of type

Summary of automatic conversion rules (3) • If the range of values of type 1 contains the range of values of type 2, then Java will perform an automatic promotion from type 2 ⇒ type 1 for the assignment operation

Overflow

Overflow

Reading integer input from the keyboard

Reading integer input from the keyboard

Numeric literals (1) • A numeric literal is a constant value that appears in

Numeric literals (1) • A numeric literal is a constant value that appears in a Java program. • Every numerical literal (constant) has a data type

Numeric literals (2) • Special tags that change the data type of a constant

Numeric literals (2) • Special tags that change the data type of a constant • long tag: The tag L or l after an integer literal will change the data type of the literal to long. Example: 12345 L has the type long • The float tag: The tag F or f after a decimal literal will change the data type of the literal to float. Example: 123. 45 f has the type float

Assigning integer constants to byte and short variables (1) • Strictly speaking, you need

Assigning integer constants to byte and short variables (1) • Strictly speaking, you need to use casting operators:

Assigning integer constants to byte and short variables (2) • If an integer literal

Assigning integer constants to byte and short variables (2) • If an integer literal (constant) is assigned to a byte typed or short typed variable, the literal (constant) is automatically converted into the appropriate type if the constant is within the range of the data type of the variable. • Example: The range of the byte type is − 128. . . 127

The assignment expressions (1) • Result of var = expr is equal to the

The assignment expressions (1) • Result of var = expr is equal to the value of expr • In addition to updating the variable. the assignment operator also returns a value

The assignment expressions (2) • When there are multiple assignment operators in an expression,

The assignment expressions (2) • When there are multiple assignment operators in an expression, the expression is evaluate from right to left

Assignment statements with the same variable on the LHS and RHS • The symbol

Assignment statements with the same variable on the LHS and RHS • The symbol "=" denotes an assignment operation: 1. The computer will first evaluate the RHS "x + 4. 0": RHS = x + 4. 0 (x contains 1. 0) = 1. 0 + 4. 0 = 5. 0 2. Then the result 5. 0 is assigned to the receiving variable x: x = 5. 0; Therefore, after executing the statement "x = x + 4. 0", the variable x contains the value 5. 0

Shorthand operators • A shorthand operator is a shorter way to express something that

Shorthand operators • A shorthand operator is a shorter way to express something that is already available in the Java programming language

The ++ and -- operators (1) • Pre-operation: the ++ and -- operator appear

The ++ and -- operators (1) • Pre-operation: the ++ and -- operator appear before the variable • Post-operation: the ++ and -- operator appear after the variable • Both operations (++var and var++) will increment the variable var by 1 • The only difference between ++var and var++ is: the value that is returned by the expression.

The ++ and -- operators (2) • The pre-operations ++a and --a will: Apply

The ++ and -- operators (2) • The pre-operations ++a and --a will: Apply the increment/decrement operation before (pre) returning the value in the variable a • The post-operations a++ and a-- will: Apply the increment/decrement operation after (pre) returning the value in the variable a

The ++ and -- operators (3)

The ++ and -- operators (3)