当前位置:首页 > 阅读 > java运算符 (java运算符优先级由高到低)

java运算符 (java运算符优先级由高到低)

java运算符 (java运算符优先级由高到低)

==!=不考虑

既是位运算符又是逻辑运算符,的两侧可以是int,也可以是boolean表达式

必须是boolean表达式

运算数值比如125(11运算才为1)

1100 ===〉12

0101===》 5

00,1,0结果是0,只有11结果是1

0100===〉4

||

|运算数值12|5(11.10运算都是1)

只要含有1即运算结果1

1101===13

^运算符

按位异或运算符(^)是二元运算符,要化为二进制才能进行计算,在两个操作数中,如果两个相应的位相同,则运算结果为0 否则取1

2^3(1,0运算为1

0000 0010=====〉2

0000 0011 ======〉3

异或0000 0001 ====〉1

================================================

(保留符号

祛除末尾移动的几个数,可以圈住未移动的,在前面填上几个0(祛除的个数),符号位移动到最高位,,然后原高位补0如图

表示左移,不分正负数,低位补0; (符号和原来的一样)低位补0,移动几位低位补几个0

如图

无符号右移 (用于32,64位)

右移运算与类似正数的运算结果是一样的

对于负数,机器是用补码进行运算

链接:

问个简单的问题3-8为什么等于-5?

原因:首先不足我们用-号表示,3-8明显没办法减,这时候用负数的概念表达,然后用大数减去小数得出小数离大数差多少也就是-5的来源

============================================

-202======5

反码:正数的原码即为其反码,对于负数而言只需要将原码除符号位以外的位数取反

原码:数字不进行其他操作时数字最原始的二进制表示

补码:正数的原码即为其补码

负数的补码是上面取得的反码加1。

正数的原码,补码,反码是一样的

负数的反码事源码除符号位取反,负数的补码是反码+1

比如

-20 的二进制原码 :1001 0100(第一位为符号位

-20 的二进制反码 :1110 1011(符号位保留)

11101011

+

00000001

==1110 1100

-20 的二进制补码 :1110 1100 (反码+1

论证:原码+反码=1111111.。。

000000-原码 (负数原码的表示方法-原码)

00000明显减原码不掉,所以会向高位申请1(然后一直申请到最高位,,)

故而000000可用10000000表示(计算机位数有限,故而这个1最终不可能表示出来)也就相当于0000000==10000000(上3行仅仅是为了推出为什么提出100000000这个概念)

100000000 =1111111+1=原码+反码+1

=原码+补码

10000000-原码 = 补码而1000000相当于000000(这是第三次补充,为什么100000等于000000? 因为负数的原码+反码=11111111 如果这时候加个1,那么结果是1000000,那么这最开头的1一定比111111多一位,也就是计算机表示不出来,那么也就是计算机只能表示0000000,即000000 = 原码+补码

故而00000 - 原码 = 补码。。。

故而计算机计算负数的加法时只需要计算它的补码。。。。。

以上就是(java运算符 (java运算符优先级由高到低))全部内容,收藏起来下次访问不迷路!