Rust进行位操作

原文链接:Paper

本文展示一个rust位操作的基本用法,首先定义一个u8的数据

// 初始值为1
let mut buf = 1u8;
println!("{:08b}",buf);

输出结果为

00000001
左移
buf <<= 2;

此操作为向左移动两位
输出结果为

00000100
或运算
buf |=0b0000_0110;
println!("{:08b}",buf);

输出结果为

00000110
与运算
buf &=0b0000_0010;
println!("{:08b}",buf);

输出结果为

00000010
非操作
buf = !buf;
println!("{:08b}",buf);

输出结果为:

11111101
与非运算
buf ^=0b0000_0010;
println!("{:08b}",buf);

运行结果为

11111101

完整测试代码为:

#[cfg(test)]
mod test{
    #[test]
    fn test(){
        let mut buf = 1u8;
        println!("{:08b}",buf);
        buf <<= 2;
        println!("{:08b}",buf);
        buf |=0b0000_0110;
        println!("{:08b}",buf);
        buf &=0b0000_0010;
        println!("{:08b}",buf);
        buf = !buf;
        println!("{:08b}",buf);
        buf ^=0b0000_0010;
        println!("{:08b}",buf);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值