MST

星途 面试题库

面试题:Rust位运算符与逻辑判断结合

在Rust中,定义一个函数,该函数接收一个u32类型的参数num。如果num的二进制表示中从右数第3位和第5位同时为1,则返回true,否则返回false。请使用位运算符来实现该函数,并解释你的实现思路。
21.0万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn check_bits(num: u32) -> bool {
    let bit3 = (num & (1 << 2)) != 0;
    let bit5 = (num & (1 << 4)) != 0;
    bit3 && bit5
}

实现思路

  1. 获取指定位的值
    • 使用位运算符 &(按位与)和 <<(左移)来获取特定位置的位的值。例如,1 << 2 表示将 1 向左移动2位,得到 0b100。然后 num & (1 << 2)num0b100 进行按位与操作,如果 num 的第三位是 1,结果就不为 0。同理,num & (1 << 4) 用于获取 num 的第五位的值。
  2. 判断并返回结果
    • 分别得到第三位和第五位的值后,使用逻辑与 && 运算符判断这两位是否同时为 1,如果是则返回 true,否则返回 false