java中整数默认为int类型

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

使用二进制来展示说明一下整形默认为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


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

本版积分规则

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

下载期权论坛手机APP