八大基本数据类型
数值型 byte 8bit(1字节) short 16bit (2字节) int 32bit(4字节) long 64bit(8字节)
浮点型 float (4字节) double(8字节)
布尔型 boolean
字符型 char
int 第一位1和0代表正负,剩下31为数值位
byte 第一位1和0代表正负,剩下7位为数值位
short 第一位1和0代表正负,剩下15位为数值位
Java的数据类型本质上是在内存中开辟不同形式的内存空间
计算机如何存储数据
原码,反码和补码z
原码就是二进制数据其本身,正数的反码=原码=补码,负数的反码=原码符号位不变,其他按位取反。负数的补码=反码末尾加一,如果末尾是0则为1,若末尾是1则为10。
计算机存储数据都是用补码。
二进制加法
1+0=1;0+1=1;0+0=0;1+1=10;
11+11=110;111+111=1110;1111+1111=11110
加减法溢出:正数方向溢出,减去2^n,负数方向溢出,加上
2^n.(n是数据类型的位数)。
比如char a=127(8位,1字节)
127+1=128-256=-128.
类型转换
自动类型转换
byte------>short------>int----->long/float(int到float可能会发生精度丢失)----->double
char—>int
强制类型转换
非以上情况,就要强制类型转换
比如int—>char不能转换
如果要转换需要强制,比如int a;char b=(char) a;