「java~运算」java运算符的优先级顺序
今天给各位分享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~运算的信息别忘了在本站进行查找喔。