java——运算符

1、算术运算符

基本四则运算符 + - * / %

这些运算符都比较简单,需要注意的是除法 /。
a) int/int结果还是int,当计算结果不为整数时,需要使用double来计算。
比如:

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

//结果为0

b) 0不能作为除数
c) %表示取余,不仅仅对int求模,也能对double求模
比如:

System.out.println(11.5%2.0);
// 运行结果
1.5

增量赋值运算符 += -= *= /= %=

这些运算符同样很简单,与c语言的用法相同

int a = 10;
a += 1;
System.out.println(a);
// 运行结果
11

自增、自减运算符 ++ –

int a = 10;
int b = ++a;
System.out.println(b);
int c = a++;
System.out.println(c);
//运行结果
11
10

结论:
1、如果不取自增运算符的表达式的返回值,则前置自增和后置自增没有区别。
2、如果取表达式的返回值,则前置自增的返回值是自增之后的值,后置自增的返回值是自增之前的值。

2、关系运算符

关系运算符主要有六个:== != < > <= >=

int a = 10;
int b = 20;
System.out.println(a == b);
System.out.println(a != b);
System.out.println(a < b);
System.out.println(a > b);
System.out.println(a >= b);
System.out.println(a <= b);

注意:关系运算符的表达式返回值都是boolean类型。

3、逻辑运算符

逻辑运算符主要有三个:

&&  ||  !

注意:逻辑运算符的操作数和返回值都是boolean。

逻辑与 &&

规则:两个操作数都是true,结果为true,否则为false。

int a = 10;
int b = 20;
int c = 30;
System.out.println(a < b && b <c);
// 运行结果
true

逻辑或 ||

规则:两个操作数都为false,结果为false,否则为true。

int a = 10;
int b = 20;
int c = 30;
System.out.println(a < b || b <c);
// 运行结果
true

逻辑非 !

规则:操作数为true,结果为false;操作数为false,结果为true。
在这里需要注意的是 操作数必须为boolean类型,与c语言中不同,比如:

int a = 10;
int b = 20;
System.out.println(!a < b);
//  这里程序跑不过   因为(!a)不是boolean类型
//如果想正常跑过应为:
System.out.println(!(a < b));
// 运行结果
false

4、位运算符

java中对数据的操作的最小单位不是字节,而是二进制位
位运算符只要有四个:

&  |  ~  ^

按位与 &

如果二进制都为1,则结果为1,否则为0.

int a = 2;
int b = 3;
System.out.println(a & b);
//  运行结果
2

注:进行按位运算时,需要把2和3转化成二进制,分别为0010和0011

按位或 |

如果两个二进制位都是0,则结果为0,否则结果为1.

int a = 2;
int b = 3;
System.out.println(a | b);
//  运行结果
3

按位异或 ^

如果两个数字的二进制位相同,则结果为0,相异结果为1。

int a = 2;
int b = 3;
System.out.println(a ^ b);
//  运行结果
1

按位取反 ~

如果该位为0则转化为1,如果该位为1则转化为0.

5、移位运算

移位运算符有三个:<< >> >>>

左移 << :最左侧位不要了,最右侧补0

int a = 0x10;
System.out.printf("%x\n",a<<1);
// 运算结果
20

相当于给原数字*2^n n表示左移的位数

右移>>:最右侧位不要了,最左侧补符号位(正数补0,负数补1)

int a = 0x10;
System.out.printf("%x\n",a>>1);
// 运算结果
8

相当于给原数字/2^n n表示右移的位数

无符号右移 >>> :最右侧位不要了,最左侧补0

于右移 >>的区别是,无符号右移>>>不关注符号位,直接补0

注:没有无符号左移

6、条件运算符

条件运算符只有一个:

表达式1?表达式2:表达式3

注:表达式1必须为boolean类型
当 表达式1 的值为true时,整个表达式的值为 表达式2 的值;当 表达式1 的值为false时,整个表达式的值为 表达式3 的值

// 求两个整数的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;

以上就是我总结的一些运算符的知识,如果有问题欢迎提出,谢谢阅读!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋丹尼尔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值