java 整型类型,[Java教程]Java中的整型数据类型学习

本文详细讲解了Java中四种整型数据类型(byte, short, int, long)的范围、字面值表示方式以及溢出情况。重点介绍了字面值的自动类型转换和超出int范围的处理方法,同时涵盖了不同进制表示和内存存储原理。
摘要由CSDN通过智能技术生成

[Java教程]Java中的整型数据类型学习

0 2014-07-06 00:00:41

Java中的整数有四个不同的表示范围类型:其分别是

byte (1个字节)

short (2个字节)

int (4个字节)

long (8个字节)

Java中,一个整型字面量(Integer Literals)其默认的类型是int类型的,还存在另外一个整数字面值常量,它是long类型的。

例如:数字1在内存中存储时,Java编译器认为这个值是一个int类型而将其存储在常量池中,而1L则会以64个位来存储。

(1)当一个整数字面值其范围在byte或者short范围内的时候,将该值赋值给byte或者short变量的时候,Java编译器可以自动地将使用byte或者short类型的变量来存储该字面量的值。1 /* 2 * 1.对于一个int类型的字面量(其范围在byte或者short可以存储的范围内)在 赋值给byte或者short类型的时候, 3 * Java编译器可以自动将数据使用byte类型或者short类型来进行处理。 4 */ 5 byte b1 = 100; 6 short s1 = 200; 7 //编译器可以识别到这个值的范围大于了byte类型的存储范围时,那么编译会出错 8 b1 = 128; 9 10 /*11 * 2.当将一个整型字面值赋值给long类型的变量,字面值依旧是int类型,12 * 但是编译器会使用64个位的long类型变量来存储该字面值。13 */14 long x = 129;15 System.out.println(x);16 17 /*18 * 虽然字i面值在long类型的存储范围之内,但是99999999999已经超过了int类型的最大存储范围,不要忘了,字面值永远是拿着4个位来存储。19 * 所以需要注意:使用的整型字面值不能超过int的存储范围,下面代码编译失败20 */21 x = 99999999999;

那么如何存储一个大于2147483647(int类型最大存储范围)?

使用long类型的字面值。1 //告诉编译器这是一个long类型的字面值2 x = 99999999999L;3 4 //小细节:只能使用整型字面值赋值,下面代码编译出错5 //一个小细节:Java只能使用整型字面值赋值给short或者byte,不能使用long类型字面值赋值给byte或者short。6 b1 = 1L;

(2)整型字面值的4种表示方式:

1 /*3.整型字面值的表示形式 2 * 十进制 3 * 八进制 4 * 十六进制 5 * 二进制 6 */ 7 //十进制赋值 8 int i1 = 26; 9 //八进制赋值,以0开头10 int i2 = 032; //3*8 + 2 = 26 11 //十六进制赋值,以0x开头12 int i3 = 0x1a;13 //二进制赋值,以0b开头14 int i4 = 0b00011010;15 16 //在使用八进制赋值的时候,不能出现大于8的数,下面代码编译出错17 int i5= 098;18 19 //long类型字面值也可以使用这4中进制来表示20 long l1 = 25L;21 long l2 = 026L; //2222 long l3 = 0X16L;23 long l4 = 0B10110L;

(3)整数在内存中的存储,都是以其补码的形式进行存储。如果一个数是正数,那么这个数的补码就是这个数的原码。如果一个数是负数,那么它的补码就是其绝对值的原码全部取反+1。int a = Integer.MAX_VALUE; a = a + 1; //此时造成了数据溢出的问题,原因在于得到的结果是1后面跟着31个0. //通过二进制一推就可以知道该二进制就是-2147483648 System.out.println(a);

本文网址:http://www.shaoqun.com/a/95583.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

JAVA

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值