“x&y是取相同的位与,这个的结果是x和y相同位的一半,x^y是取x和y的不同位,右移相当于除以2” 位运算我知道是咋回事,但是他说的解释我不明白。请各位老师指教
3条回答 默认 最新
- threenewbee 2016-08-08 13:43关注
假设两个数的二进制分别是10101111和10010011 10101111=10000011+00101100 10010011=10000011+00010000 我们把它们拆分成两个数字,第一个是每一位如果相同,取这一位的值,不同的取0;第二个数字是如果这一位相同,取0,如果不同,取这一位的值。 这样两个值相加等于左边的值,这个能理解么? 10000011+10000011=2个(10000011),10000011 and 10000011=10000011,也就是1个(10000011),所以说是一半 右边,因为我们取的不同位,所以如果第一个数字这一位是1,另一边肯定是0,或者相反,不可能都是1,所以 00101100 or 00010000 = 00101100 + 00010000 >>1 相当于除以2(好比10进制,1000移动1位成为100,是除以10) 所以右边也是两数相加的一半。 因为左边右边相加等于原来的数字,所以两边都是一半也就是原来的数字的一半。 好比 a/2+b/2=(a+b)/2
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 lammps拉伸应力应变曲线分析
- ¥15 C++ 头文件/宏冲突问题解决
- ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
- ¥50 安卓adb backup备份子用户应用数据失败
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛
- ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
- ¥30 python代码,帮调试,帮帮忙吧
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python