「java~运算」java运算符的优先级顺序

博主:adminadmin 2022-12-29 14:00:09 990

今天给各位分享java~运算的知识,其中也会对java运算符的优先级顺序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

在JAVA中,"~"是什么意思?

~是位运算符,意义是

按位非(NOT)

按位非也叫做补,一元运算符NOT“~”是对其运算数的每一位取反。例如,数字42,它的二进制代码为:

00101010

经过按位非运算成为

11010101

优先级按位运算符的优先级,在运算符中优先级最低。

java的按位取反"~"运算符号是怎么计算的

得看你的数据类型了,比如说你写12,默认的就是int的12

int是32位的

12=00000000 00000000 00000000 00001100

~12=11111111 11111111 11111111 11110011

第二个问题,有符号整数是按照最高位判断正负的(java中的数值除了char都是有符号的,都符合这个规则),如果x最高位是1,那么该数是负数,其值为 -((~x)+1),因此

11111111 11111111 11111111 11111111作为int型的话,因为最高位为1,所以其值为 -(0+1)=-1

根据上面的理论,~12=-(~(~12)+1)=-13

java中的运算?

因为2和5都是整数,所以2/5发生的是整除,会直接丢弃小数部分,结果是0。

而12%5是求12除以5后的余数,结果是2。

所以,1-2/5+12%5=1-0+2=3。

下图是验证:

java的运算中~10为什么是-11

说明:1.~运算为按位取反

2.计算机中的数据都是2进制补码

3.一个10进制数转化为2进制数,即放入计算机时,要根据10进制正负(+、-)不同的补码规则转化

4.同理,计算机中的2进制数转化为你习惯的10进制数时,也会根据2进制正负(0、1)不同的补码规则转化

5.要学会利用计算机的思维理解数据 以及他们的运算

6.现在内存或得了一个数0000 1010,你让cpu计算它的~值,他直接就取反,得到一个数1111 0101,结果他一想,你可能听不懂他说的啥,还是好心的给你转换为你能理解的10进制吧。但是cpu一看这是一个负数,于是根据人类的要求,需要先把他转换为原码的形式再转10进制,于是乎(1111 0101)-1=1111 0100,除符号位求反变为1000 1011,转为10进制就是-11啦

java~运算的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java运算符的优先级顺序、java~运算的信息别忘了在本站进行查找喔。