Integers
Java defines four integer types: byte, short, int, and long. All of these are signed, positive and negative values. Java
does not support unsigned, positive-only integers. Many other computer
languages support both signed and unsigned integers. However, Java’s designers
felt that unsigned integers were unnecessary. Specifically, they felt that the
concept of unsigned was used mostly
to specify the behavior of the high-order
bit, which defines the sign of an
integer value. As you will see in Chapter 4, Java manages the meaning of the
high-order bit differently, by adding a special “unsigned right shift”
operator. Thus, the need for an unsigned integer type was eliminated.
The width of an integer
type should not be thought of as the amount of storage it consumes, but rather
as the behavior it defines for
variables and expressions of that type. The Java run-time environment is free
to use whatever size it wants, as long as the types behave as you declared
them. The width and ranges of these integer types vary widely, as shown in this
table:
byte
The smallest integer type is byte. This is a signed 8-bit type that
has a range from –128 to 127. Variables of type byte are especially useful when you’re working with a stream of
data from a network or file. They are also useful when you’re working with raw
binary data that may not be directly compatible with Java’s other built-in
types.
Byte variables are declared by use of the byte keyword. For example, the following declares two byte variables called b and c:
byte b, c;
short
short is a signed 16-bit type. It has a range from
–32,768 to 32,767. It is probably the least-used Java type. Here are some
examples of short variable
declarations:
short s; short t;
int
The most commonly used
integer type is int. It is a signed
32-bit type that has a range from –2,147,483,648 to 2,147,483,647. In addition
to other uses, variables of type int
are commonly employed to control loops and to index arrays. Although you might
think that using a byte or short would be more efficient than
using an int in situations in which
the larger range of an int is not
needed, this may not be the case. The reason is that when byte and short values
are used in an expression, they are promoted
to int when the expression is
evaluated. (Type promotion is described later in this chapter.) Therefore, int is often the best choice when an
integer is needed.
long
long is a signed 64-bit type and is useful for those occasions where an int type is not large enough to hold the desired value. The
range of a long is quite large. This
makes it useful when big, whole numbers are needed. For example, here is a
program that computes the number of miles that light will travel in a specified
number of days:
// Compute distance light travels using long
variables. class Light {
public static void
main(String args[]) { int lightspeed;
long days; long seconds; long distance;
// approximate speed of light in miles per
second lightspeed = 186000;
days = 1000; // specify number of days here
seconds = days * 24 * 60 * 60; // convert to
seconds
distance = lightspeed * seconds; // compute distance
System.out.print("In " + days);
System.out.print(" days light will travel
about ");
System.out.println(distance + "
miles.");
}
This program generates the
following output:
In 1000 days light will travel about
16070400000000 miles.
Clearly, the result could not
have been held in an int variable.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.