数据运算符
一、数值型的表现形式
1、整型:
进制: 满几进一
二进制 : 只能有0,1组成 java中通过0b开头表示 数学写法后面加B
八进制 : 只能0~7组成 java中通过0开头表示 数学写法后面加O
十进制 : 默认 数学写法后面加D或不加
十六进制 : 由0~F组成 java中通过0x开头表示 数学写法后面加H
进制的转换:
其他进制转为十进制:
从右往左,每一位的数值*进制数^次方从0开始,每次+1 ,最后求和就是对应的十进制数据
十进制转为其他进制:
使用当前 的十进制数据,不停的除以要转为的进制数,得到结果为0就不除了,得到最终的余数,从下往上看结果
PS:二进制对八进制及十六进制的快捷转换:
从最末尾一位开始,三位二进制数代表一位八进制数
例:111010101(B)-->725(O)
从最末尾一位开始,四位二进制数代表一位十六进制数
例:111010101(B)-->1D5(H)
2、浮点型
浮点型: 0.5->.5 0可以省略 科学计数法 : e|E-> 10 1.3E3-->1.3*10^3
二、常量
java程序执行过程中,值不会发生改变的量
1、自定义常量
final关键字修饰的变量为常量
final int X=100;(此后不能给X重新赋值)
注意: 驼峰命名规范
2、字面值常量
整数常量 : 1 -5 100.. 小数常量 : 1.1 -0.5 .. 布尔常量 : false true 字符常量 : 'a' '1' '中' ' ' 字符串常量 : " " "abc"
三、数据类型的转换
boolean 类型不参与类型转换
1、自动类型提升
大范围数据类型 变量 = 小范围类型的数据;
2、强制类型转换
小范围数据类型 变量 = (小范围数据类型)大范围数据数据;
注:多种数据类型的数据参与运算,最终的结果为参与运算中的最大数据类型
如果运算后最大的类型小于int类型,会自动提升成为int
数据的范围关系:
byte<short<int<long<float<double
如果为byte,short,char类型赋值的时候,只要在其范围内的常量就能成功赋值
四、运算符
1、算术运算符
= | 赋值 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取模 |
自增与自减
i++:先使用后自增
++i:先自增后使用
i--:先使用后自减
--i:先自减后使用
扩展赋值运算符
+=
-=
*=
/=
%=
2、条件运算符
运算符 | 作用 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
== | 等于 |
3、逻辑运算符
& 与: 同true为true,有false为false
| 或: 同false为false,有true为true
!非: 取反
^异或: 不同为false,相同为true
短路与 &&: 左边为false时结果确定为false,不执行右边的语句
短路或 ||: 左边为true时结果确定为true,不执行右边的语句
4、条件运算符(三目运算符)
(条件语句)?a语句:b语句;//当条件语句为true时执行a语句,为false时执行b语句
五、位运算符
1、位且:&
在两边都是数值的情况下:将数值转化为二进制,进行位运算(全1为1,有0为0),然后转化为十进制,得到结果
2、位或:|
在两边都是数值的情况下:将数值转化为二进制,进行位运算(全0为0,有1为1),然后转化为十进制,得到结果
3、位异或;^
在两边都是数值的情况下:将数值转化为二进制,进行位运算(不同为1,相同为0),然后转化为十进制,得到结果
4、右移:>>和左移:<<
将数值转化为二进制数,向右或者向左移动指定位数,然后转化为十进制,得到结果
PS: 左移n位相当于除以2的n次幂,右移n位相当于乘以2的n次幂;计算机执行位运算效率更高
PS: 8421码可以将多种权限职能的有无情况用唯一的数字表示
六、Scanner
//1、调用包
import java.util.Scanner;
//2、创建
Scanner sc=new Scanner(System.in);
//3、使用
byte b=sc.nextByte();
short s=sc.nextShort();
int i=sc.nextInt();
long l=sc.nextLong();
float f=sc.nextFloat();
double d=sc.nextDouble();
//字符串
String str=sc.next();
//注:以上这些系列的next功能,都是从有效字符开始接收,遇到空格就停止接收,直到遇到enter功能结束
//sc.nextLine()接收用户输入的一整行的数据,直到遇到enter结束
//当nextLine功能的上面存在系列的next功能时候,注意处理之前的系列的next遗留的enter问题
sc.nextLine();
String str=sc.nextLine();
七、Random
//1、调用包
import java.util.Random;
//2、创建
Random r=new Random();
//3、使用
r.nextInt(); //生成一个int类型范围内的随机数
r.nextInt(整数n); //生成一个 [0,n) 之间的随机整数
r.nextDouble(); //生成一个 double 类型的随机小数->[0.0,1.0)
r.nextInt(max-min+1)+min; //[min,max] 随机整数