java基础
**
数据及符号
**
第一篇博客来说一说Java数据及符号
数据
基本数据类型:byte、int、double、char…
引用数据类型:String、Integer…
基本数据类型
1.整数
byte(1字节) short(2字节) int(4字节) long(8字节 后跟L或l)
默认int
2.浮点
float(4字节 后跟F或f) double(8字节)
默认double
3.字符
char(2字节)
4.布尔
boolean(true或false)
转换
基本数据类型转换时boolean不参与
容量大转容量小时需要强制转换,且可能造成精度溢出。而容量小向容量大的转则不需要。
字符、整形及浮点型互换时首先会转换成默认的整形int
int a = 128;
byte b = (byte) a;
System.out.println(b);
//输出结果为-128
/*
byte 1字节 取值范围为 -128~127即 -2^7~2^7-1
最高位为一个符号,0代表正数,1代表负数
128 二进制为 1000 0000即为 byte最小值-128
从此向上依次增加
1000 0001 即为 -127 (-128+1)
...
1111 1111 即为 -1 (-128+127)
其他容量大转容量小类同
*/
而java是采取补码的形式存储
得到二进制之后(1000 0000) byte最高位为1(负数)
1.进行反码 正数反码为本身,负数反码除符号位,其余按位取反
得到 1111 1111
2.进行补码 反码第一位为0补码为本身;为1则将1加至末尾,符号为-
-(0111 1111 + 1)
-(1000 0000) 即-128
类型 | 大小(bit) | 最小值 | 最大值 |
---|---|---|---|
byte | 8 | -128 | 127 |
short | 16 | -32768 | 32767 |
int | 32 | 0x80000000 | 0x7fffffff |
long | 64 | 0x8000000000000000L | 0x7fffffffffffffffL |
char | 16 | \u0000(0) | \uffff(65535) |
float | 32 | – | – |
double | 64 | – | – |
符号
算数运算符:+,-,*,/,%,++,–
+被用来加法运算、正号、字符串拼接
赋值运算符:=,+=,-=,*=,/=,%=
关系运算符:==,!=,>,>=,<,<=
结果为boolean类型
逻辑运算符:&,|,^,!,&&,||
位运算符:&,|,^,~,>>,>>>,<<
符号 | 操作(符号两边二进制数值) |
---|---|
& | 同1则为1 |
Ι | 有1则为1 |
^ | 相同为0 不同为1 |