java的数据类型

一、java的8种数据类型

Java是一种强数据类型,其本质就是在内存中开辟不同形式的内存空间。
整型:byte,short,int,long
浮点型:float,double
布尔型:boolean
字符型:char

二、整型及浮点型的存储范围

类型 字节长度 取值范围
int 4 -2147483648~2147483647
short 2 -32768~32767
long 8 -9223372036854775808~9223372036854775807
byte 1 -128~127
float 4
double 8

三、为什么byte类型127+1是-128

public static void main(String[]args){
byte a=127;
byte b=(byte)(a+1);
System.out.println(b);

}

1.计算机中以补码存储数据
(以byte类型进行讨论)
原码:
45 00101101
-45 10101101
反码:
45 00101101
-45 11010010
补码:
45 00101101
-45 11010011
针对正数:正数的原码=反码=补码
针对负数:负数的反码=除符号位外其余位按位取反;
负数的补码=反码+1

2.为什么要计算反码

因为在计算机中只有加法,没有减法,在进行减法运算时,实质上是认为加上一个负数,这样可以减少计算电路的复杂度。
使用原码进行减法运算会出错:
例如,计算1-1,在计算机中默认转换为1+(-1),
=【00000001】原+【10000001】原=【10000010】原=-2
结果与实际运算不符

使用反码进行减法运算:
=【00000001】原+【10000001】原=【00000001】反+【11111110】反=【11111111】反=【10000000】原
=-0
00000000可以表示+0,10000000可以表示-0,二者是一样的,用2个编码其实浪费了资源。

使用补码进行减法运算:
=【00000001】原+【10000001】原=【00000001】补+【11111111】补
=【00000000】补
=【00000000】原
这样0可以用【00000000】表示,而之前出现的-0问题也就不存在了。

反码是为了解决减法问题,而补码是为了解决反码产生的±0的问题

四、数据转换时的精度损失

从int型数据转换为float型存在精度丢失,

从int型数据转换为double型存在精度丢失,

从long型数据转换为float型存在精度丢失,

强制类型转换:括号中表明强制转换类型

例如:将int型数据转换为byte型数据
int a=56788;
byte b=(byte)a;

五、关系运算符

常见的关系运算符:

关系运算符 含义
== 相等运算符
>= 大于或等于运算符
<= 小于或等于运算符
!= 不等于运算符
> 大于运算符
< 小于运算符
上一篇:【渝粤教育】广东开放大学 当代*制度 形成性考核 (45)


下一篇:农村环境保护之平时作业二