• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

整数类型

发布: 2007-7-14 21:19 | 作者: 佚名    | 来源: 网络转载     | 查看: 42次 | 进入软件测试论坛讨论

领测软件测试网 Java 定义了4个整数类型:字节型(byte),短整型(short),整型(int),长整型(long )。这些都是有符号的值,正数或是负数。Java 不支持仅仅是正的无符号的整数。许多其他计算机语言,包括C/C++ ,支持有符号或无符号的整数。然而,Java 的设计者感到无符号整数是不必要的。具体地说,他们感到无符号(unsigned )概念主要被用来指定高位(high-order bit )状态,它定义了当int 表示一个数字时的符号。你将在第4章中看到,Java 对高位含义的管理是不同的,它通过增加一个专门的“无符号右移”运算符来管理高位。这样,就不需要无符号整数了。

整数类型的长度(width )不应该被理解为它占用的存储空间,而应该是该类变量和表达式的行为(behavior )。只要你对类型进行了说明,Java 的运行环境对该类的大小是没有限制的。事实上,为了提高性能,至少字节型和短整型的存储是32位(而非8位和16位),因为这是现在大多数计算机使用的字的大小。

这些整数类型的长度和变化范围如表3-1 所示:

表3-1 整数的各种类型及特性

名称 长度 数的范围
长整型 64 –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
整型 32 –2,147,483,648 ~ 2,147,483,647
短整型 16 –32,768 ~ 32,767
字节型 8 –128~127

让我们分别讨论整数的每种类型。

3.3.1 字节型(byte)
最小的整数类型是字节型。它是有符号的8位类型,数的范围是-128~127。当你从网络或文件处理数据流的时候,字节类型的变量特别有用。当你处理可能与Java 的其他内置类型不直接兼容的未加工的二进制的数据时,它们也是有用的。

通过“byte ”这个关键字的使用来定义字节变量。例如,下面定义了2个变量,称为b 和c:byte b,c;

3.3.2 短整型(short)
short是有符号的16位类型,数的范围是 –32,768~32,767 。因为它被定义为高字节优先(称为big-endian 格式),它可能是Java 中使用得最少的类型。这种类型主要适用于16位计算机,然而这种计算机现在已经很少见了。

下面是声明Short变量的一些例子:

short s;
short t;

注意:“Endianness ”描述像short,int ,和 long 这些多字节数据类型是如何被存储在存储器中的。如果用2 个字节代表short ,那么哪个字节在前,是高字节位(最重要的字节)还是低字节位(最不重要的字节)?说一台机器是big-endian,那意味着这个机器中最重要的字节在前,最不重要的字节在后。例如 SPARC 和PowerPC 的机器是 big-endian ,而Intel x86 系列是 little-endian 。

3.3.3 整型(int)
最常用的整数类型是int 。它是有符号的32位类型,数的范围是-2,147,483,648~2,147,483,647 。int 类型的变量通常被用来控制循环及作数组的下标。任何时候你的整数表达式包含byte,short,int 及字面量数字,在进行计算以前,所有表达式的类型被提升(promoted )到整型。

整型是最通用并且有效的类型,当你想要计数用作或数组下标或进行整数计算时,你应该使用整型。似乎使用字节型和短整型可以节约空间,但是不能保证 Java 不会内部把那些类型提升到整型。记住,类型决定行为,而不是大小(惟一的例外是数组,字节型的数据保证每个数组元素只占用一个字节,短整型使用 2 个字节,整型将使用4个。)

3.3.4 长整型(long)
long 是有符号的64位类型,它对于那些整型不足以保存所要求的数值时是有用的。长整型数的范围是相当大的。这使得大的、整个数字都被需要时,它是非常有用的。例如,下面的程序是计算光在一个指定的天数旅行的英里数。

// 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

通过“byte ”这个关键字的使用来定义字节变量。例如,下面定义了2个变量,称为b 和c:byte b,c;

3.3.2 短整型(short)
short是有符号的16位类型,数的范围是 –32,768~32,767 。因为它被定义为高字节优先(称为big-endian 格式),它可能是Java 中使用得最少的类型。这种类型主要适用于16位计算机,然而这种计算机现在已经很少见了。

下面是声明Short变量的一些例子:

short s;
short t;

注意:“Endianness ”描述像short,int ,和 long 这些多字节数据类型是如何被存储在存储器中的。如果用2 个字节代表short ,那么哪个字节在前,是高字节位(最重要的字节)还是低字节位(最不重要的字节)?说一台机器是big-endian,那意味着这个机器中最重要的字节在前,最不重要的字节在后。例如 SPARC 和PowerPC 的机器是 big-endian ,而Intel x86 系列是 little-endian 。

3.3.3 整型(int)
最常用的整数类型是int 。它是有符号的32位类型,数的范围是-2,147,483,648~2,147,483,647 。int 类型的变量通常被用来控制循环及作数组的下标。任何时候你的整数表达式包含byte,short,int 及字面量数字,在进行计算以前,所有表达式的类型被提升(promoted )到整型。

整型是最通用并且有效的类型,当你想要计数用作或数组下标或进行整数计算时,你应该使用整型。似乎使用字节型和短整型可以节约空间,但是不能保证 Java 不会内部把那些类型提升到整型。记住,类型决定行为,而不是大小(惟一的例外是数组,字节型的数据保证每个数组元素只占用一个字节,短整型使用 2 个字节,整型将使用4个。)

3.3.4 长整型(long)
long 是有符号的64位类型,它对于那些整型不足以保存所要求的数值时是有用的。长整型数的范围是相当大的。这使得大的、整个数字都被需要时,它是非常有用的。例如,下面的程序是计算光在一个指定的天数旅行的英里数。

// 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.");

}
}

这个程序运行的结果如下:

In 1000 days light will travel about 16070400000000 miles.

很清楚,计算结果超出了整型数的表达范围。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网