面试题答案
一键面试fn check_bits(num: u32) -> bool {
let bit3 = (num & (1 << 2)) != 0;
let bit5 = (num & (1 << 4)) != 0;
bit3 && bit5
}
实现思路
- 获取指定位的值:
- 使用位运算符
&
(按位与)和<<
(左移)来获取特定位置的位的值。例如,1 << 2
表示将1
向左移动2位,得到0b100
。然后num & (1 << 2)
将num
与0b100
进行按位与操作,如果num
的第三位是1
,结果就不为0
。同理,num & (1 << 4)
用于获取num
的第五位的值。
- 使用位运算符
- 判断并返回结果:
- 分别得到第三位和第五位的值后,使用逻辑与
&&
运算符判断这两位是否同时为1
,如果是则返回true
,否则返回false
。
- 分别得到第三位和第五位的值后,使用逻辑与