Logo

郎哥编程

Java整型类型

2018-01-02 1210

Java语言中,基本的整型数据类型有byte、short、int、long四种类型,用于需要不同存储空间的数据使用。整型有正整数和负整数之分,在Java语言中,规定整型的最高位为符号位,最高位为“0”表示正数,最高位为“1”表示负数,其它位表示数值。因此整型类型的数据能够表示的最小值为:-2n-1 —2n-1-1(n为该类型所占存储空间的二进制位数)。

其中,byte占用一个字节的存储空间,可表示的最小数值为-128,最大数值为127;

short占用二个字节的存储空间,可表示的最小数值为-32768,最大数值为32767;

int占用四个字节的存储空间,可表示的最小数值为-2147483648,最大数值为2147483647;

long占用四个字节的存储空间,可表示的最小数值为-9223372036854775808,最大数值为9223372036854775807。

整型变量可按如下方式声明:

public  int  pageNumber;
long   population;
byte   age;
short  readCount;

在一条语句中,可以声明多个同一类型的整型变量,每个变量之间用英文逗号分隔:

int  pageNumber, likeNumber,readCount;

整型变量可按如下方式初始化:

int   pageNumber=230;
byte  age = 21;
short  readCount=1260;

在初始化变量或为变量赋值时,常常会用到一些数值,这些值通常称为常量。Java语言中整型常量有三种不同的表示形式:十进制、八进制和十六进制。

①  八进制整型常量:在八进制数值前面加前缀数字0,其数码取值为0—7,例如:023、0457、01329等;

② 十六进制整型常量:前缀为“0X”或“0x”,数码取值0—9、A—F、或a—f。例如:0X2A、0XA0、0Xffff等;

③ 十进制整型常量:既无前缀也无后缀。例如:236、56、7890等。

示例1: 整型常量声明:

final  int   ERRORCODE = 0X1;
final  int   SUCESSCODE = 0X0;
final  byte  Key = 32;

当整型数据数值大小超出了可以表示的范围,而程序中又没有做数值范围的检查时,这个整型变量所输出的值将发生紊乱,且不是预期的运行结果,这种现象称为溢出。

示例2:int类型的溢出

在D盘Java目录下,新建“OverFlow.java”文件。用记事本打开“OverFlow.java”文件,输入以下代码:

public  class  OverFlow {
  public static void main(String args[])
  {
     int num = 9021467483647;
            System.out.println("num=" + num);    
  }
}

编译“OverFlow.java”文件,在命令行窗口输入“javac  OverFlow.java”并执行命令,编译器显示如下信息:

                                 a015.png            

编译器给出过大的整数错误信息,num的数值明显超出的int所能表示的最大值。

示例2:byte类型的溢出

在D盘Java目录下,新建“ByteOverFlow.java”文件。用记事本打开“ByteOverFlow.java”文件,输入以下代码:

public  class  ByteOverFlow {
  public static void main(String args[])
  {
     byte  byCode =  129;
            System.out.println("byCode =" + byCode);    
  }
}

编译“ByteOverFlow.java”文件,在命令行窗口输入“javac  ByteOverFlow.java”并执行命令,编译器显示如下信息:

a082.png

编译器给出可能损失精度的错误信息,原因是byte变量的最大值为127,数值129超出了byte所能表示的范围。编译器将数值129赋值给byCode时,将129强制转换为byte所能表示的范围,因此报出损失精度的错误信息。


知识点拨.png

程序声明的所有变量都要占用程序运行存储空间,对程序运行存储空间比较小的单片机、手机等设备,在程序设计时,要充分考虑变量所占的存储空间对内存空间的影响,使用byte可以表示的数值范围尽量不要用int类型,更不能使用long类型,在赋值时,一定要判断数值的范围大小,以免发生数值溢出问题。


作业.png


(1)要存储一个long型的值,需要()字节的存储空间。

A.4

B.8

C.2

D.1

(2)程序需要存储一个数值为128的常量,可用的占用存储空间最小的的数据类型为()。

A. byte

B . long

C. int

D.short

(3)在Java语言中,数值128用十六进制表示为()。

A.80H

B.0X80

C.80

D.080


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
郎宏林 2018-01-21 17:17

<p>关于忆嘉同学的问题为什么byte可表示的最小数值为-128,最大数值为127?可以参考下面的问答内容:</p><p><br/></p><p><a href="http://milihua.com/group/questionview.aspx?guid=0ca2d101e8794319ad148d8e7ad50295" target="_blank" title="byte类型数值最大为啥是127?" style="text-decoration: underline; color: rgb(0, 112, 192);"><span style="color: rgb(0, 112, 192);">byte类型数值最大为啥是127?</span></a><br/></p>