MST
星途 面试题库

面试题:Rust位运算符实现复杂算法

在Rust中,实现一个函数,输入是两个u64类型的整数a和b,要求使用位运算符实现一个自定义的加密算法。加密规则如下:将a和b的二进制位按位交替组合(先a的第0位,再b的第0位,然后a的第1位,b的第1位,以此类推),生成一个新的u128类型的加密结果。若a和b的二进制位长度不一致,较短的一方补零至与较长一方长度相同。
14.0万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn custom_encrypt(a: u64, b: u64) -> u128 {
    let mut encrypted: u128 = 0;
    for i in 0..64 {
        let a_bit = (a >> i) & 1;
        let b_bit = (b >> i) & 1;
        encrypted |= (a_bit as u128) << (2 * i);
        encrypted |= (b_bit as u128) << (2 * i + 1);
    }
    encrypted
}