java中整数默认为int类型

使用二进制来展示说明一下整形默认为int类型

整数值默认就是int类型,因此使用二进制形式定义整数时,二进制整数默认占32位,第32位为符号位。而byte类型占用8位,第八位为符号位。

如果这样一行代码:byte b1 = 0b11100001;  这句话会报错的,因为默认类型为int类型,因此jvm默认形式为32位的二进制数00000000000000000000000011100001
符号位为0,代表为整数,二进制11100001对应的十进制数为225,超出了byte类型的取值范围byte(-128~127)。
而这样写就不会报错:byte b2 =  (byte)0b11100001;  强制类型转换为byte第八位符号位为1,代表为负值因此打印b2值为-31;


下面这验证了Java中整数默认为int类型。

		     long binVal1 = 0b10000000000000000000000000000111;
		long binVal2 = 0b10000000000000000000000000000111L;
		System.out.println(binVal1);//打印结果-2147483641
		System.out.println(binVal2);//打印结果2147483655


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值