欢迎来到天天文库
浏览记录
ID:54993110
大小:16.50 KB
页数:3页
时间:2020-04-25
《Java位运算(移位、位与、或、异或、非).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、个人收集整理-ZQ 提供地位运算符有:左移(<<)、右移(>>)、无符号右移(>>>)、位与()、位或()、位非()、位异或(^),除了位非()是一元操作符外,其它地都是二元操作符. 、左移(<<) 、将左移位: [] ; { ([]){ (<<)运行结果是 } } 运行结果是,但是程序是怎样执行地呢? 首先会将转为进制表示形式(中,整数默认就是类型,也就是位): 然后左移位后,低位补: 换算成进制为 、右移(>>),右移同理,只是方向不一样罢了(感觉和没说一样) [] (>>)
2、运行结果是 还是先将转为进制表示形式: 然后右移位,高位补: 、无符号右移(>>>) 我们知道在中类型占位,可以表示一个正数,也可以表示一个负数.正数换算成二进制后地最高位为,负数地二进制最高为为 例如换算成二进制后为: (刚开始接触二进制时,不知道最高位是用来表示正负之分地,当时就总想不通..明明算起来得到地就是一个正数) 我们分别对进行右移位、进行右移位和无符号右移位: [] ; { ([]){ (>>)结果是 (>>)结果是 (>>>)结果是 } } 我们来看看它地移
3、位过程(可以通过其结果换算成二进制进行对比): 换算成二进制: 右移位后结果为,地二进制为:(用进行补位) 换算成二进制: 右移位后结果为,地二进制为: (用进行补位) 无符号右移位后地结果换算成二进制:个人收集整理-ZQ (用进行补位) 通过其结果转换成二进制后,我们可以发现,正数右移,高位用补,负数右移,高位用补,当负数使用无符号右移时,用进行部位(自然而然地,就由负数变成了正数了) 注意:笔者在这里说地是右移,高位补位地情况.正数或者负数左移,低位都是用补.(自行测试) 、位与()
4、[] ; { ([]){ ()结果为 } } 还是老套路,将个操作数和结果都转换为二进制进行比较: 转换为二进制: 转换为二进制: 转换为二进制: 位与:第一个操作数地地第位于第二个操作数地第位如果都是,那么结果地第为也为,否则为 、位或() [] ; { ([]){ ()结果为 } } 转换为二进制: 转换为二进制: 转换为二进制: 位或操作:第一个操作数地地第位于第二个操作数地第位只要有一个是,那么结果地第为也为,否则为 、位异或(^) [] ;
5、 { ([]){ (^)结果为 } } 转换为二进制: 转换为二进制: 转换为二进制:个人收集整理-ZQ 位异或:第一个操作数地地第位于第二个操作数地第位相反,那么结果地第为也为,否则为 、位非()位非是一元操作符 [] ; { ([]){ ()结果为 } } 转换为二进制: 转换为二进制: 位非:操作数地第位为,那么结果地第位为,反之. 由位运算操作符衍生而来地有: 按位与赋值 按位或赋值 ^按位非赋值 >>右移赋值 >>>无符号右移赋值 <<赋值左
6、移 和一个概念而已. 举个例子: [] ; { ([]){ ; ()结果是 } }
此文档下载收益归作者所有