如何实现通过位运算符,来改变函数的参数

博客围绕如何通过位运算符改变函数参数展开。以Cat类为例,因属性为boolean类型,为节约内存将其存储为int类型每一位上的1/0。介绍了设置属性的思路,如对不同属性设置不同位值,还提到使用按位取反运算避免属性掩盖,最后说明参数调用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何实现通过位运算符,来改变函数的参数

\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其实是一个很容易的东西,但是由于自己学的东西还是太浅显,只停留在表面上,所以花了自己很多的时间去弄懂这样一个稍微转点脑子的问题。也算是一次修炼,文笔不好,排版辣鸡,道阻且长,继续加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值