新手入门
- 积分
- 17
- 金钱
- 17
- 注册时间
- 2020-3-30
- 在线时间
- 3 小时
|
发表于 2020-3-30 14:27:51
|
显示全部楼层
这个问题我思考了很长时间,我的想法是这样的,为什么要先清零再设值呢?(以下的“置”是对单个位或者连续几位全部统一置为0或1而言的,而“设”是指挑选出某几位设置成特定的值,这几位中可能有的是0而有的是1,所以含义有区别):
首先交待“与”和“或”操作的性质。“与”1在原先有0的情况下就无法置1,但无论原先是0还是1,只要“与”1就都可以起到保留0或1的作用,即保留原先的值。另外,无论原先是0还是1,“与”0都可以清零。所以“与”操作可以起到保留的作用和清零的作用,但不能起到置1的作用。相比之下,无论原先是0还是1,“或”0虽然都可以起到保留0或1的作用,但在原先有1的情况下就无法清零。而在原先为0的情况下,若需要对其中某些位进行置1,则只要对这些位进行“或”1操作即可。所以“或”操作可以起到保留的作用,也可以在原先为0的情况下起到置1的作用,但不能起到清零的作用。
因此,在对某几位设值时,先用“与”0清零准备设值的位并同时用“与”1保留不需设值的其他位,这样,需要设值的位就都为0,接下来就可以通过“或”1操作,对需要设值的位的中的某些位进行置1,通过“或”0操作,对需要设值的位的中的其他位进行置0,便完成了设值操作。而对不需要设值的位,同样通过“或”0操作,即可保留这些位上的值。
不过我后来又想了想,感觉如果换一种思路,好像先用“或”置1再用“与”设0也行,但是这个我还没试过,所以还不确定。如果这个想法有错误的话,欢迎指正! |
|