首页 > 编程语言 > 详细

Java运算符

时间:2021-04-02 12:25:35      阅读:28      评论:0      收藏:0      [点我收藏+]

运算符

字符串拼接

System.out.println("hell" + ‘o‘);  // hello
System.out.println(‘a‘ + 1 + "hello"); // 98hello

除法运算

丢弃小数,保留小数部分

int a = 3;
int b = 2;
int c = a / b;
System.out.println(c);  // 1

提高精度

int a = 3;
int b = 2;
double c = 1.0 * a / b;
System.out.println(c);  // 1.5

++和--运算符

++a:先运算再赋值

a++:先赋值再运算

int a = 1;
int b = 2;
int c;
c = a++;
System.out.println(c);  // 1
c = ++b;
System.out.println(c);  // 3

再来看一个例子

int a = 4;
int b;
b = (a++) + (++a) + (a * 10);
System.out.println(b);  // 70

关系运算符

结果为true or false

int a = 2;
int b = 3;
boolean c = a > b;
System.out.println(c);  // false

逻辑运算符

与:&

或:|

非:!

int a = 2;
int b = 3;
boolean c = a > b & a++ == 0;
System.out.println(c);  // false
System.out.println(a);  // 3

短路与:&&

短路非:||

示例代码如下:

int a = 2;
int b = 3;
boolean c = a > b && a++ == 0;
System.out.println(c);  // false
System.out.println(a);  // 2

异或运算

相同为false

不同为true

boolean c = true ^ false;
System.out.println(c);

位运算符

按位运算

左移运算:左移1位相当于乘以2(未超出表示范围)

int c = 3 << 2;
// 0000 0011 > 0000 1100
System.out.println(c);  // 12

带符号右移>>:右移1位相当于除以2(高位补符号位)

int c = -2 >> 1;
// -2的原码: 1000 0010
//     反码: 1111 1101
//     补码: 1111 1110
// 带符号右移1位(高位补符号位)
// 1111 1110 >> 1111 1111
// 求原码
// 补码: 1111 1111
// 反码: 1000 0000
// 原码: 1000 0001
System.out.println(c);  // -1

无符号右移>>>(高位补0)

// -2在计算中的存储
// 1111 1110
// 右移
// 0111 1111
int n1 = -2;	
n1 = n1 >>> 1;
System.out.println(n1);

按位运算符

int n1 = 1;
int n2 = 2;
// & 与
// 001
// 010
// 000

// | 或
// 001
// 010
// 011

// ^ 异或(相同为0,不同为1)
// 性质1:a ^ a = 0
// 性质2:a ^ 0 = a
// 001
// 010
// 011

// ~ (按位取反)
// 001
// 110
System.out.println(n1 & n2);
System.out.println(n1 | n2);
System.out.println(n1 ^ n2);
System.out.println(~n1);  // -2

Java运算符

原文:https://www.cnblogs.com/gmbjzg/p/14609798.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!