作业帮 > 综合 > 作业

a=1>>3先将a赋值1,再将a左移三位,还是先将1左移3位,再赋值给a?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/09 02:02:32
a=1>>3
先将a赋值1,再将a左移三位,还是先将1左移3位,再赋值给a?
十分肯定地告诉你,是先右移3位,再赋值给a!
遇到这种问题很好验证的,楼主就写一段非常少代码的程序跑一下看看嘛.比如设定n=16,二进制也就是10000,那么右移3位为10,十进制也就是2,你测试一下你这句对不对?肯定是这个结果.所以就是先右移3位,再赋值给a.
有时候光看运算符优先级不好使,比如m=++n;和m=n++;的结果就不一样!而左++和右++的优先级都大于赋值=.所以遇到这种问题,搞不清了,可以拿程序跑一下试试,而对于自己,最好不要写这种代码,即使它是语法正确的!代码的可读性是个很重要的问题,这种易混淆的语句,要么拆开写,要么通过小括号来控制运算顺序,在合作开发中写这种代码肯定会被别人骂的