1.算术操作符

四则运算符:±*/

自增自减:++、–

取余:%

2.scanner类

首先导入包 import java.util.Scanner;

然后创建一个对象,命名为s。Scanner s=new Scanner(System.in);

将对象s接收到的值赋给整型变量a。int a=s.nextInt();

打印a。System.out.println(“第一个整数:”+a);

注:C语言中的打印语句为printf(“xxxxx%d”,a),一定要写出打印的数据类型以及变量。

在Java中System.out.println(“XXXX”+a)表示输出字符串和变量a。

读取整数:

import java.util.Scanner;

Scanner s=new Scanner(System.in);
int a=s.nextInt();

读取浮点数:

import java.util.Scanner;

Scanner s=new Scanner(System.in);
float f=s.nextFloat();

读取字符串:

import java.util.Scanner;

Scanner s=new Scanner(System.in);
String a=s.nextLine();

注:若在读取整数之后还需要再读取字符串,则需要连续读取两次。

原因:输入时输入整数后再输入字符串,中间一定有空格或者换行符。因为nextInt()只会读取整数,不会读取空格和换行符。所以需要连续两次读取字符串才能得到输入的字符串。

3.不同数据类型的四则运算转换

int +int=int

int+long=long

int+byte=int(数据类型向上兼容,即谁能存放的数据大就变成谁。)

4.自增自减注意事项

后缀:i++ 运算后i++的值为i的初值,i的值为i的初值+1

前缀:++i 运算后++i的值和i的值都为i的初值+1

自减同上

5.不同运算符的结合顺序

非、正负、自增自减(优先级为2)、带有赋值运算符的所有运算符(优先级最低)都是从右向左计算,

6.关系操作符

>

大于

>=

大于等于

<

小于

<=

小于等于

==

是否相等

!=

是否不等

7.逻辑运算符

&

长路与

运算单元为布尔值,有假为假,两侧参与运算

&&

短路与

运算单元为布尔值,有假为假,只要左侧为假则右侧不参与运算

|

长路或

运算单元为布尔值,有真为真,两侧参与运算

||

短路或

运算单元为布尔值,有真为真,只要左侧为真则右侧不参与运算

!

取反

^

异或

相同为假

8.位操作符

位操作都是针对二进制而言。十进制数整数转换为二进制字符串通过Integer.toBinaryString()方法。

位或 :转换为二进制后逐位进行或运算。(即”|“(或)。有真为真。)

位与:转换为二进制以后逐位进行与运算。(即”&“(与)。有假为假。)

异或:转换为二进制以后逐位进行异或运算。(相同为0,与0异或为自己)

取非:转换为二进制以后再逆序排列。(~)

左移:根据一个整数的二进制表达,将其每一位都向左移动,最右边一位补0。(<<)

右移:根据一个整数的二进制表达,将其每一位都向右移动。(>>)

9.不用乘法计算2*16

2的二进制为10,16的二进制为10000。2*16=32即二进制100000。相当于将10左移4位得到100000。

因此不用乘法表示的方法为:

int i=2;
System.out.println(i<<4);

10.带符号右移和无符号右移

带符号右移>>:对于正数,带符号右移会把所有位往右移,并在最前面补0

对于负数,带符号右移会把所有位往右移。并在最前面补1

无符号右移>>>:对于正数,无符号右移会把所有位往右移。

对于负数,无符号右移会把最左边的1也往右移动,移动后第一位变成0即变成了一个正数。

11.赋值操作符

int i=1;
i += ++i;

输出结果为3,心算结果为4。(待解决)

12.三元操作符

表达式?值1:值2

如果表达式为真,返回值1;否则返回值2。