java2|3输出的值

Python017

java2|3输出的值,第1张

输出的值是3

int是32位,现在为方便只写4为即可,因为数比较小。

2的二进制表示 0010,3的二进制0011,5的二进制0101.

&的优先级高于|的优先级。

1、&先计算

0011 &0101 两个操作数都为1才为1,结果0001。

2、|再计算

0001 | 0011 只要有一位为1即为1,结果0011。

所以最后结果为3。

需要根据您定义的参数类型(float,double,int或者其他类型)来求解,

_煌牟问? “” 符号的操作是不同的,浮点型的精度也是不一样的,如果是整型那么23等于0,如果是浮点型,不同电脑结果或有少许的偏差

这是一个位运算表达式啊

<<表示算术左移,用来将一个数的二进制位序列左移若干位,高位左移后溢出,舍弃不用,在右补0。

如2<<3,

把十进制值2转成二进制数补码:00000010

把2的二进制位向左移动3位,高位左移后溢出(以左为高),舍弃不用,在右边补0:

把00000010向左移动三位,最左边三个0溢出——>00010,

然后再右边补三个0——>00010000

再将这个二进制码转成十进制数字就是16。

还有两个相关的移位运算符:

>>

表示算术右移,用来将一个数的二进制位序列右移若干位,移到右端的低位被舍弃,最高位则移入原来高位的值。

>>>

表示逻辑右移,用来将一个数的二进制位添零右移若干位,即向右移动若干位,移到右端的低位被舍弃,最高位添零。它也叫无符号右移