关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)

本文详细解析了Java中byte类型的取值范围,通过对比正负数值的二进制表示,阐述了溢出概念及0、-128、-1、+127这几个特殊数值的二进制形式,解释了为什么byte类型无法表示128。

先看一段推理<*一切都是在8个比特位的前提下,讨论二进制的符号位,溢出等等,才有意义*>

+124:0111 1100  -124:1000 0100

+125:0111 1101  -125:1000 0011

+126:0111 1110  -126:1000 0010

+127:0111 1111  -127:1000 0001

+128:0 1000 0000   -128:1000 0000

从上述过程对比可以看出:+128是在127的基础上加1得到,但是会造成溢出(JAVA中byte的大小为一个字节),所以byte无法表示128,

而在我们的潜意识的想法里:0在计算机中的表示方法有两种:+0(0000 0000)和-0(1000 0000),而由于1000 0000已经被-128占据,所以0在二进制数中是正数表示(即符号位0),

在Java中一个byte的取值总个数:2^8 = 256;256/2 = 128;===>取值范围:-128~-1,0~127,原点作为分割点,两个各128数,

注意几个数的特殊性:

   0:0000 0000

-128:1000 0000

    -1:1111 1111

+127:0111 1111

转载于:https://www.cnblogs.com/zy-2113/p/10777530.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值