java中各种运算符

比如java中常用的运算符

符号++ ,+,--,-

有时这个符号拼凑起来也有点复杂

比如这样一个运算式

int i=3;

i+++i-i++-++i

+ -运算符的优先级 低于++-- 先运算++--

可以将上面的式子拆开

i++ + i - i++ - ++i

这样是不是容易多了

 

先来个简单点的

1 K++

int k=0;

System.out.println(K++)

System.out.println(k)

输出结果为 0

           1

这说明 K++式子并没有相加 而是k本身加了1

 

2 ++K

int k=0;

System.out.println(++k)

System.out.println(k)

输出结果为 1

           1

这说明 K++式子本身加了1 而是k本身也加了1

 

K----K效果与上一样

 

再来算上面的式子

i=3

i++ + i - i++ - ++i

 1………….2………3…………..4

 

1 i++本身不变 i++=3  i=4

2 i=4

3 i++本身不变 上面i=4 此时i++=4 i=5

4 ++i本身变化 上面i=5 此时 ++i=6 i=6

 

取出上面红色的值

结果为 : 3+4-4-6=-3

 

 

符号 ~

 

比如 int i=102;

~i=-103

     int i=-3

~i=2

 

~计算可以匹配一个运算式

 int I;

~I=(-I)-1;

也就是求相反值-1

 

符号>> <<

举例

int i=100;

int j=2;

i>>j=25

i<<j=400

 

<<匹配运算式

i>>j   等价于   i/(int)Math.pow(2, j)

i<<j  等价于    i*(int)Math.pow(2, j)

也就是 i除以或乘以 2j次方

 

符号(抑或) |

符号 | 就比较复杂一点 里面涉及到二进制与十进制之间的转换问题

比如 32 | 24

32 转换为二进制

Integer.toBinaryString(32) = 100000;

24转换为 二进制

Integer.toBinaryString(24) = 11000;

 

两个并排比较 比较式为数不同 0

100000

011000

位与位比较 00=0  01=1 11=1

上面的结果就是

111000

然后将 111000转换为十进制

1*(int)Math.pow(2, 5)+1*(int)Math.pow(2, 4) +1*(int)Math.pow(2, 3)

=2*2*2*2*2+2*2*2*2+2*2*2

=32+16+8

=56

 

 

符号&

同样32 | 24

32 转换为二进制

Integer.toBinaryString(32) = 100000;

24转换为 二进制

Integer.toBinaryString(24) = 11000;

 

两个并排比较 比较式为数不同 0

100000

011000

位与位比较  00=0  01=0 11=1

上面的结果就是

000000

然后将 111000转换为十进制

0*(int)Math.pow(2, 5)+0*(int)Math.pow(2, 4) +0*(int)Math.pow(2, 3)

=0

 

符号(抑或) ^

假如 2^5

2 转换为二进制

Integer.toBinaryString(2) = 10;

5转换为 二进制

Integer.toBinaryString(5) = 0101;

两个并排比较 比较式为数不同 0

101

010

位与位比较  00=0  01=1 11=0  所谓抑或就是 相同为0 不同为1

上面的结果就是111

转换2进制位 4+2+1=7

 

其他一些符号就不说了 * / %取余

 

 

符号 >>> <<<

假如 27>>>1

 

获取 27的 2进制 :11011

27往右推进一位 11011 所有位数往右移动   01101

 01101的十进制 就是 :13

 

假如  27>>>2

11011 右移两位 00110 结果就是6

 

<<<是不存在的 不用试了  

 

 

 

### Java 中三元运算符的使用方法 在 Java 编程语言中,三元运算符提供了一种简洁的方式来实现条件判断逻辑。该运算符由三个部分组成:一个布尔类型的条件表达式以及两个可能的结果值。当条件为 `true` 时返回第一个结果;反之则返回第二个结果[^2]。 #### 语法结构 三元运算符的一般形式如下所示: ```java result = (condition) ? value_if_true : value_if_false; ``` 其中 `(condition)` 是要评估的布尔表达式,而 `value_if_true` 和 `value_if_false` 则分别代表根据条件真假所选取的不同值。 #### 示例说明 ##### 比较两数大小并输出较大者 下面的例子展示了如何利用三元运算符来找出两个整型变量中的最大值,并将其赋给另一个变量用于后续处理[^1]。 ```java int num1 = 8, num2 = 5; String result = (num1 > num2) ? "Num1 is greater" : "Num2 is greater"; System.out.println(result); // 输出:"Num1 is greater" ``` ##### 检查数值奇偶性 此例子通过三元运算符快速判定指定整数是否能被2整除从而决定打印的信息内容。 ```java int number = 7; String message = (number % 2 == 0) ? "The number is even." : "The number is odd."; System.out.println(message); // 输出:"The number is odd." ``` #### 应用场景提示 尽管三元运算符可以简化某些简单的条件语句,但在面对复杂的多分支情况或者嵌套过多的情况下应谨慎考虑可读性和维护成本等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值