#nibble #byte #half

nibbler

用于处理半字节(半字节,4位)的小型实用程序。

5个版本

0.2.3 2020年8月16日
0.2.1 2020年8月15日
0.1.8 2020年8月14日

数学类别中排名607

每月下载37

GPL-3.0-or-later

77KB
1.5K SLoC

Nibbler

处理半字节的小型库。

Crates.io上还有几个处理半字节的库。

效率

本库中的任何内容都不应被视为“高效”或“快速”。然而,它旨在简单。

依赖关系

  • 无,None

所需的是标准库中的std::fmt::Display(标准库),用于显示对象。

快速示例使用

use nibbler::traits::Nib;
use nibbler::nibble::Nibble;
let val: u8 = 10;
let mut nib: Nibble = Nibble::from(val);
assert_eq!(10, nib.into());

use nibbler::nibbles::Nibbles;

let val: u16 = 0xaa; // 10101010
let nibs: Nibbles = val.into();
assert_eq!(2, nibs.len());
assert!(nibs.fits_u8());
assert_eq!(170, nibs.into());
assert_eq!(10, nibs.get(0).into());
assert_eq!(10, nibs.get(1).into());

let val: u16 = 0xba; // 10111010
let nibs: Nibbles = val.into();
assert_eq!(2, nibs.len());
assert!(nibs.fits_u8());
assert_eq!(186, nibs.into());
assert_eq!(11, nibs.get(0).into());
assert_eq!(10, nibs.get(1).into());

let val: u16 = 0xf00;
let nibs: Nibbles = val.into();
assert_eq!(3, nibs.len());
assert!(!nibs.fits_u8());
assert!(nibs.fits_u16());
assert_eq!(3840, nibs.into());
assert_eq!(15, nibs.get(0).into());
assert_eq!(0, nibs.get(1).into());
assert_eq!(0, nibs.get(2).into());

半字节不考虑符号。半字节只是4位。在所有转换中,有符号整数都被视为无符号整数。您可以将有符号整数转换回可用的类型。

更多信息,请参阅文档... 或在Crates.io ... 或仓库

未来

在所谓的"待办事项"列表中,要添加右移、左移、加法、减法和乘法。

许可证

GPLv3

无运行时依赖