java的整数类型_java整数类型

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:36   2062   0

public class Test2_9 {

public static void main(String args[]){

//java有4种整数类型:byte,short,int,long

//java的默认整数计算的结果是int类型

//整数的字面量(即整形变量=号后面的那个值)是int类型

//如果自面量超过Int型最大值,则字面量是long类型,后面要加l(不区分大小写)

//输出int型的最大值->2147483647

System.out.println(Integer.MAX_VALUE);

//给longValue一个值,使它超过Int型的最大值

//int longValue=2147483648;//出现编辑错误,超出int型最大值

//long longValue=2147483648;//超出int型的范围,要用long类型,但是这样写是不对的

//这样写就对了

long longValue=2147483648l;//l不区分大小写,也可以写成long longValue=2147483648L

System.out.println(longValue);

}

}

输出结果:

2147483647

2147483648

//第二个例子--------------------------------------------

//由于整型默认计算结果是int型,下面的b=a+3其实是这样的

// byte b=byte(a)+int(3);

//由于byte占1字节,int占4字节,但变量b要求是byte型,会丢失信息,结果存在不确定性,会报错

byte a=5;

//byte b=a+3;//所以这么写是有问题的

//可以这样写,将结果强制转换成byte型

byte b1=(byte)(a+3);

System.out.println(b1);//结果为byte型8

//或者将b的类型改为int型

int b2=a+3;

System.out.println(b2);//结果为Int型8

//超出byte范围-128-127,下面这行报错

//byte b3=126+2;

//可强制转换

byte b3=(byte)(126+2);

System.out.println(b3);//-128

System.out.println(Integer.toBinaryString(126));

System.out.println(Integer.toBinaryString(2));

//是这么计算得到-128的

//126-> 01111110

//2 -> +00000010

//------------------

// =10000000->2的7次方128

//转byte型:最高位为1,表示负数,由于正数与负数的关系是取反再加1,10000000取反再加1的结果还是10000000

//也就是2的7次方=128,由于最高位为1表示负数,所以结果为-128

//或者定义变量为int型

int b4=126+2;

System.out.println(b4);//128

System.out.println(Integer.toBinaryString(b4));

输出结果:

8

8

-128

1111110

10

128

10000000

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP