java运算符
1.算术运算符
自增、自减;++、--在前和++、--在后的区别
public static void main(String[] args){ int a = 10; int b = 20; int c = 25; int d = 25; System.out.println("a + b = " + (a + b) ); System.out.println("a - b = " + (a - b) ); System.out.println("a * b = " + (a * b) ); System.out.println("b / a = " + (b / a) ); System.out.println("b % a = " + (b % a) ); System.out.println("c % a = " + (c % a) ); System.out.println("a++ = " + (a++) ); System.out.println("a-- = " + (a--) ); // 查看 d++ 与 ++d 的不同 System.out.println("d++ = " + (d++) ); System.out.println("++d = " + (++d) ); }
输出结果是:
a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5
a++ = 10
a-- = 11
d++ = 25
++d = 27
总结:对于简单类型的数据,不论++、--在前还是在后,对于数据本身都是发生了改变的,对于++、--在后面的整体未发生改变,++、--在前面的整体发生改变,自身也发生改变
2.位运算符
例如:a = 60,和b = 13 对应的二进制: A = 0011 1100 B = 0000 1101 ----------------- //同时有1则为1 A&b = 0000 1100 //只要一边有1就为1 A | B = 0011 1101 //两个操作数不相同时,一边出现1一边没有才为1 A ^ B = 0011 0001 //为1的变为0,为0的变为1 ~A= 1100 0011 //右移操作数两位,其余补0 A << 2得到240,即 1111 0000 1111 0000 的值=2^7+2^6+2^5+2^4 //左移操作数两位,其余补0 A >> 2得到15即 1111 //右移几位,其余的补0 A>>>2得到15即0000 1111
3.Number类的成员方法
double a = 1.213; double b = -1.256; //ceil向左取整,就是取的更大的值,返回值是double System.out.println(Math.ceil(a)); System.out.println(Math.ceil(b)); //floor向右取整,就是取的更小的值,返回值是double System.out.println(Math.floor(a)); System.out.println(Math.floor(b)); //rint返回与参数最接近的整数 System.out.println(Math.rint(a)); System.out.println(Math.rint(b)); //round四舍五入 System.out.println(Math.round(a)); System.out.println(Math.round(b));