在 java 里面有八大基本的数据类型, 分别是
byte,short,char,int,long,float,double,boolean
然后需要说的就是几个特殊的基本数据类型的取值范围
先来说说 byte 它的取值范围 -----
byte 的取值范围是 - 128~127, 但是你们有没有想过为什么是这个范围呢? 大家肯定都值晓得它是一个字节的长度, 那我就来分析下吧
一个字节是 8 位二进制, 因为最高位是符号位, 在 java 里面的使用补码来表示 (负数补码是原码取反得到反码之后加 1 得到的, 正数的补码, 反码, 原码都是一样的)
本来最小和最大值应该是: 0000 0000~1111 1111
而最高位是符号位, 所以我们去掉最高位: 000 0000~111 1111----> 十进制也就是 0~127
而负数呢? 刚刚说了, 负数要计算, 好!
(反码) 原码取反: 111 1111~000 0000
(补码) 反码加 1:1000 0000~000 0001
然后最后加上一直没有加上的符号位表示的十进制也就是:-128~-1,
所以!! 整个的范围就是 - 128~127
接下来说说 char 跟 short 这两个类型, 他们的字节长度都是 2 个字节
但其实具体来看的话, 有不同,
short 是有符号类型的, 也就是说它的最高位是符号位,
而 char 是没有符号的, 只是表示指定编码的字符,
所以,,, 总的来说的话 char 类型是会比 short 类型要大上一倍的
来源: http://www.bubuko.com/infodetail-2808288.html