在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类型要大上一倍的