Java中关于操作符的面试题

Java中关于操作符的面试题

1、分析下面程序运行输出的结果

 public static void main(String[] args) {
     int i = 12;
     int j = i+=i-=i*=i;
     System.out.println(j);
 }

分析:

 int j = i += (i -= (i *= i))
     i += (i -= (i = i * i))
     i += (i = i-i^2)
     i = (i + i - i^2)
     i = 12 +12 - 144
     i = -120

注意:

  • 式子中每一步运算赋值操作(+=、-=、*=)完毕之后会把结果进行赋值,但是是赋值给局部变量表中的变量i。

  • 继续向左进行运算时,使用的i的值,还是最初读取到的初始值12,这个数已经被读取到了操作数栈中,所以不会随着运算赋值符操作而改变。

考察位运算:&、|、^、-、>>、>>>、<<

2、传入一个int数,要求清除该数的低8位,高24位不变,将结果以十进制形式输出。

实际要求:将一个数的低8位无条件置0

 例如:
 输入:01010000 00101111 10101011 01010101
 输出:01010000 00101111 10101011 00000000    
     
 解析:从&、|等位运算的
  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值