2个版本
0.1.1 | 2020年8月9日 |
---|---|
0.1.0 | 2020年8月9日 |
#731 in 嵌入式开发
16KB
281 行
Rust的位操作
示例
设置所需的位
use bit_op::{BitOp, bit_u8::*};
let mut x = 0b00001111u8;
x.set(B7);
assert_eq!(x, 0b10001111);
let mut y = 0u8;
y.set(B7 | B0);
assert_eq!(y, 0b10000001);
重置所需的位
use bit_op::{BitOp, bit_u8::*};
let mut x = 0b00001111u8;
x.reset(B0 | B1 | B2 | B3);
assert_eq!(x, 0);
let mut y = 0b11111111u8;
y.reset(B7 | B0);
assert_eq!(y, 0b01111110);
切换所需的位
use bit_op::{BitOp, bit_u8::*};
let mut x = 0b00001111u8;
x.toggle(B5 | B4 | B3 | B2);
assert_eq!(x, 0b00110011);
x.toggle(B5 | B4 | B3 | B2);
assert_eq!(x, 0b00001111);
获取所需的位
use bit_op::{BitOp, bit_u8::*};
let mut x = 0b10000001u8;
assert_eq!(x.get(B7), 0b10000000);
assert_eq!(x.get(B6), 0b00000000);
assert_eq!(x.get(B0), 0b00000001);
贡献
欢迎贡献!
许可证
根据您的选择,许可协议为Apache许可证2.0版或MIT许可证。除非您明确声明,否则您有意提交并包含在此crate中的任何贡献,根据Apache-2.0许可证定义,应按上述方式双许可,不附加任何额外条款或条件。