如何实现通过位运算符,来改变函数的参数\quad\quad今天在学习时碰到这样一个问题:题目中有一个Cat类,按照题目的要求,我需要使用位运算设置猫咪的属性。如图所示:
\quad\quad对于这种问题,刚拿到的时候真的是毫无头绪,在参阅别人的代码跟受人指点后,知道了题目所想表达的意思,以及如何去实现这一过程。其实说到原理,由于Cat类的三种属性(CUT、FAT、WHITE)都是boolean类型的参数,所以为了节约内存,可以将boolean类型的true以及false存储为int类型每一位上的1/0,这样就可以利用到题目中给出的变量:
\quad\quad所以,接下来进行功能的实现,思路在于,假设三个属性的设置顺序以此为:CUTE、FAT、WHITE,对于cute为true的的情况,可以将int properties的后四位中的***0设置为***1,这样便把cute为true的情况存储下来。当cute为false的情况,便可以将这四位设置为***0。以此类推,分别对FAT,WHITE做同样操作。但是应注意的是,当CUTE为true,FAT为false。对FAT设置为false,不能将前面CUT的true属性掩盖。所以就要用到~(按位取反运算)
代码如下:\quad\quad最后就是对参数的调用,根据当前位的属性(0/1)为boolean返回不同的值。代码如下:
\quad\quad其实是一个很容易的东西,但是由于自己学的东西还是太浅显,只停留在表面上,所以花了自己很多的时间去弄懂这样一个稍微转点脑子的问题。也算是一次修炼,文笔不好,排版辣鸡,道阻且长,继续加油!
如何实现通过位运算符,来改变函数的参数
最新推荐文章于 2022-04-03 09:50:04 发布