java位运算(二),了解各个类型的最大最小值,以及怎么计算出来的

先科普计算机基础。

byte是一个字节,有8个位(bits),即8个0、1。

8位的第一个位是符号位,

也就是说一个byte能代表最大的正数为 0111 1111,为127.

一个byte能代表的最大负数为1000 0000,为-128.

那你知道1111 1111代表的多少吗,你以为是255? 错误的,是-1。

这里就要普及几个概念。

原码,反码与补码

原码: 一个整数按照绝对值大小转化成的二进制数为原码。

22原码就是 0000 0000 0000 0000 0000 0000 0001 0110

反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。

22反码就是 1111 1111 1111 1111 1111 1111 1110 1001

补码:反码加1称为补码。

22补码就是 1111 1111 1111 1111 1111 1111 1110 1010 

也就是十六进制的0xFFFFFFEA。也就是-22.

Java各个类型的占位

int数据类型:byte(8bit ,-128~127) short(16 bit) int(32 bit) long(64 bit)

float数据类型: 单精度(32 bit float)、双精度(64 bit double)

char数据类型:unicode字符(16位)

下面简单介绍下每种类型最大值是怎么来的。


看上面知道 byte 为 8 bit ,bit是由0与1组成,而首位标识正负,所以byte最大值为 0111 1111,为127.

而int 为 4个byte ,为32bit , 所以 int最大值为 0111 1111 1111 1111 1111 1111 1111 1111.

同理,其他都是这么计算.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值