k=k>>1 ???

niujibin168 2011-12-05 07:09:29
ublic synchronized void dispBlock(int s){
int k = 0x8000;
for (int i = 0; i < 4; i++){
for(int j = 0; j < 4; j++){
if(((int)pattern[blockType][turnState]&k) != 0){
scr.drawUnit(row-i,col+j,s);
}
k=k>>1;
}
}
}
k=k>>1是什么意思?
...全文
320 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
龙腾冰 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 a34020249 的回复:]

>>是右移操作符, >>的权限比赋值操作符=高,所以
k=k>>1 就相当于 k = (k >> 1)也就是把k的2进制数整体往右移动一位,最左边用0补充。
[/Quote]

+1
duzhonghua 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 huntor 的回复:]
正整数 右移1位相当于除以 2。
[/Quote]
顶个
yao443jun 2011-12-06
  • 打赏
  • 举报
回复
不知道为什么试了一下,-1的右移一位不管用,而-4右移一位就是-2,-2右移一位就是-1.。。。。。。本人新手,不明白右移在计算机里的到底是不是整体右移
wypbt1032 2011-12-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 huntor 的回复:]
正整数 右移1位相当于除以 2。
[/Quote]

同意
qjl1000211038 2011-12-05
  • 打赏
  • 举报
回复
右移一位!
wang7535067 2011-12-05
  • 打赏
  • 举报
回复
呵呵,来慢了。
huntor 2011-12-05
  • 打赏
  • 举报
回复
正整数 右移1位相当于除以 2。
niujibin168 2011-12-05
  • 打赏
  • 举报
回复
嗯 知道了 多谢啦!呵呵!
a34020249 2011-12-05
  • 打赏
  • 举报
回复
>>是右移操作符, >>的权限比赋值操作符=高,所以
k=k>>1 就相当于 k = (k >> 1)也就是把k的2进制数整体往右移动一位,最左边用0补充。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧