设int a=1 则表达式(true|(++a))&(a==2)的值是什么,为什么?
1个回答
关注
展开全部
亲下午好哦因为按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。当参与运算的是负数时,参与两个数均以补码出现。括号优先级最高,所以表达式是x&y的形式,因为是++a先取值在计算所以a=2 true是1 1|2 是01|10 所以是11所以是3,所以后面运算a==2时,a已经是2了,所以后面也是true,3&1 所以结果是true 或者是1。
咨询记录 · 回答于2022-11-22
设int a=1 则表达式(true|(++a))&(a==2)的值是什么,为什么?
亲下午好哦因为按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。当参与运算的是负数时,参与两个数均以补码出现。括号优先级最高,所以表达式是x&y的形式,因为是++a先取值在计算所以a=2 true是1 1|2 是01|10 所以是11所以是3,所以后面运算a==2时,a已经是2了,所以后面也是true,3&1 所以结果是true 或者是1。
亲,是b哦
1. 运行编译好的字节码文件。2.关系表达式 3. System.out.printf package test。4. x的值变为20。