Integer numerical data types
240 likes | 269 Vues
Learn about integer data types in Java, their binary encoding, arithmetic operations, priority, and automatic conversions. Get familiar with assignment operations, automatic type conversions, and shorthand operators.
Integer numerical data types
E N D
Presentation Transcript
The integer data types • The integer data types use the binary number system as encoding method • There are a number of differentinteger types in Java
Integer operators • Integer operators are arithmetic operators that manipulate (operate on)integer values • A integer operatoronly operates on integer values • The result of an integer operator is always an integer value
Priority and associativity of the integer arithmetic operators
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 typebefore an arithmetic operation (+, −, *, /, %) in performed. • If one of the values in an arithmetic operation is long, then all values are converted to long typebefore the arithmetic operation in performed.
Safe Conversions • Safe conversions: • Unsafe conversions:
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 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 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 type1 contains the range of values of type2, then Java will perform an automatic promotion from type2 ⇒ type1 for the assignment operation
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 • long tag: The tag L or lafter an integer literal will change the data type of the literal to longExample: 12345L has the type long • The float tag: The tag F or fafter a decimal literal will change the data type of the literal to floatExample: 123.45f has the type float
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 (constant) is assigned to a byte typed or short typed variable, the literal (constant) is automatically converted into the appropriate typeif 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 value of expr • In addition to updating the variable. the assignment operatoralsoreturns a value
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 "=" 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 is already available in the Java programming language
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 varby 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 increment/decrement operationbefore (pre)returning the value in the variable a • The post-operationsa++ and a-- will: Apply the increment/decrement operationafter (pre)returning the value in the variable a