这里面a =10011111b,对其进行左移,是如何变成0000 0100b
3条回答 默认 最新
- 於黾 2022-05-23 10:21关注
你没看懂
不是把a左移
是把1左移
1左移2位不就是100吗
然后取反,就变成了1111 1011
那么a与上1111 1011,就把除了第2位之外的其他位跟1与运算,不管原来是什么都不变,第2位跟0与运算,那么不管原来是什么都变成0了
-=-=-=-=
看不懂代码的时候,要学会拆解
a &= ~(1<<2)
这个看起来复杂,那么你把它分步看
假设还有一堆变量a1,a2,a3...作为中间结果,那么代码等价于
a1=1<<2
a2=~a1
a=a&a2本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 对于知识的学以致用的解释
- ¥50 三种调度算法报错 有实例
- ¥15 关于#python#的问题,请各位专家解答!
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败