2个版本

0.1.1 2020年8月9日
0.1.0 2020年8月9日

#731 in 嵌入式开发

MIT/Apache

16KB
281

License License line

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许可证定义,应按上述方式双许可,不附加任何额外条款或条件。

无运行时依赖