黑马程序员技术交流社区

标题: z=(x+y)>>1 这个式子的意思? [打印本页]

作者: 会说话的木头    时间: 2014-3-6 15:41
标题: z=(x+y)>>1 这个式子的意思?
如题!这是一种什么用法?
作者: 谭荣强    时间: 2014-3-6 16:05
z=(x+y)>>1  要看运算符的优先级。()大于>>大于=,相当于x+y的值右移一位,然后赋值给z
作者: 孟茹    时间: 2014-3-6 17:14
它的意思是把 x+y的值算出来以后,然后右移一位 ,最后赋给z, >> 是二进制里面的右移的运算符,这就相当于计算把x+y的值转成二进制后右移一位,根据二进制的运算方法,例如11111111,右移一位就会变成01111111,左侧补零,这个在老师那个视频里有讲的,是在进制转换那儿
作者: syusikoku    时间: 2014-3-6 17:28
其实z的值就是将x与y的和往右移两位,高位用0补充。右移的操作是/2的倍数。即右移一位/2,右移2位/4,你可以多看一下毕老师的java基础的视频。
作者: 12560zhang    时间: 2014-3-6 18:45
本帖最后由 12560zhang 于 2014-3-6 18:47 编辑

这个主要考查的是运算符的优先级F:\JAVA\java pic\运算符\运算符的优先级和结合型.png

运算符的优先级和结合型.png (42.12 KB, 下载次数: 3)

运算符的优先级和结合型.png

作者: victorsun    时间: 2014-3-6 19:13
你必须先知道上述表达式中的运算符的优先级,()的优先级最高,>>其次,=最低,那么就很好解释了,先算出x=y的值并将其值右移一位,就是对应的二进制右移一位,再把所得到的值赋给z




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2