您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> JAVA >> 辅导 >> 正文    
  数据类型之整数类型 【注册男护士专用博客】          

数据类型之整数类型

www.nanhushi.com     佚名   不详 

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. 
很清楚,计算结果超出了整型数的表达范围。

 

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。