java 八种数据类型大小范围详解

java 八种数据类型大小范围详解

序号数据类型位数字节默认值取值范围举例说明
1byte(位)81字节0-2^7 - 2^7-1byte b = 10;
2short(短整数)162字节0-2^15 - 2^15-1short s = 10;
3int(整数)324字节0-2^31 - 2^31-1int i = 10;
4long(长整数)648字节0-2^63 - 2^63-1long l = 10l;
5float(单精度)324字节0.0-2^31 - 2^31-1float f = 10.0f;
6double(双精度)644字节0.0-2^63 - 2^63-1double d = 10.0d;
7char(字符)162字节0 - 2^16-1char c = ‘c’;
8boolean(布尔值)81字节falsetrue、falseboolean b = true;

对取值范围的解释:

一个字节是8位,最高位是符号位,最高位为0则是正数。最高位为1则是负数

以byte类型为例:
byte:8位二进制

8位二进制 的补码组合序列有256个
0000 0000 - 0111 1111 0 ~+127
1000 0000
1000 0001 - 1111 1111 -1~-127

再看看这个规律表
原码 补码 值
0111 1111 0111 1111 +127
0111 1110 0111 1110 +126
… … 补码不断-1…
0000 0000 0000 0000 0
1000 0001 1111 1111 -1
1000 0010 1111 1110 -2
1000 0011 1111 1101 -3
… … 补码不断-1…
1111 1111 1000 0001 -127
? 1000 0000 -128

此时,补码值为最低位-128的原码无法表达,
于是就有了规定:
原本应该表示 -0 的原码:1000 0000 定为 -128的原码
这样规定后,负数的补码在机器中就好算了。

故 取值范围 n位: -2^(n-1) ~ 2^(n-1) -1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值