java 中byte 类型数据的取值范围为-128~127的说明
java中byte类型的数据,存储在计算机内存中占1个字节(即0或者1表⽰的8位⼆进制数),数据在计算机中都是按照补码形式表现,因此⾸先了解⼀下原码、反码、补码的基本概念。
⼀、原码、反码和补码的对应关系
带符号的数据⼆进制表⽰的形式最⾼位代表符号类型,其中,0表⽰正数,1表⽰负数。
对于正整数⽽⾔,原码、反码和补码是相同的,⽐如127
符号位 数值位
原码表⽰为: 0 1111111
反码表⽰为: 0 1111111
补码表⽰为: 0 1111111
即127在计算机中表⽰为01111111
对于负整数⽽⾔,反码表⽰为原码的最⾼位不变,其他位反转(就是0变为1,1变为0),补码表⽰反码加1。⽐如-127
符号位 数值位
原码表⽰为: 1 1111111
反码表⽰为: 1 0000000
补码表⽰为: 1 0000001
即-127在计算机中表⽰为10000001
⼆、最⼤范围和最⼩范围的计算
(1)最⼤范围
这个⽐较简单就是计算01111111的⼗进制数,通过⼆进制计算⼗进制:
max = (21+26),
很容易看出这是⼀个等⽐数列,通过等⽐数列求和公式计算为:
java变量的数据类型分为两种max=27)/1-2=2^7-1=127
(2)最⼩范围
对于正整数0,⼆进制表⽰为00000000
对于负整数-0,⼆进制表⽰为100000000(补码) 10000000(原码)
由于正整数0和负整数-0相等,但是它们的⼆进制表⽰形式却不⼀样并且-0还是9位⼆进制表⽰的,所以为了解决这个问题,就让10000000表⽰为-128即
min=-128
(3)总结
每个数据都是由8位⼆进制表⽰,每⼀位都有2种可能(0或者1),所以8位⼆进制可以组合的数据个数为:
sum = 2^8=256
根据(2)中分析,正整数从0-128共sum2=128个
sum1 + sum2 =sum即从这个⾓度也可以说明最⼩范围为-128,最⼤范围为127。0+22+…+20(1-2127共sum1=128个,负整数从-1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论