Java bithift陌生
发布时间:2020-12-14 19:16:30 所属栏目:Java 来源:网络整理
导读:Java有两个用于右移的位移操作符: shifts right,and is dependant on the sign bit for the sign of the result shifts right and shifts a zero into leftmost bits http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op3.html 这看起来相当简单
Java有两个用于右移的位移操作符:
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op3.html 这看起来相当简单,所以任何人都可以向我解释为什么这个代码,当bar为-128的值时,为foo产生-2的值:
这意味着要做一个8位字节,最左边2位的掩码,并将它们移到最右边的2位.即:
结果实际上是-2,即
IE浏览器. 1s而不是零被移动到左侧位置 最佳答案
这是因为&实际上是对int执行升级 – 这留下了大量的“1”位.然后你向右移动,将最左边的2位保留为0,然后通过转回字节忽略那些最左边的位.
当你将操作分开时,这会变得更清晰:
版画
所以再做一点算术:
即使你从&操作(通过那时的铸造),>>>无论如何,将首先将第一个操作数提升为int. 编辑:解决方案是改变你掩盖事物的方式.而不是通过-64屏蔽,而是仅通过128 64 = 192 = 0xc0掩码:
这样你真的只剩下你想要的两个位,而不是在最重要的24位中加载1. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |