10个版本 (稳定版)
使用旧的Rust 2015
2.0.3 | 2017年7月11日 |
---|---|
2.0.2 | 2017年6月16日 |
2.0.0 | 2017年3月18日 |
1.2.0 | 2017年1月12日 |
0.2.2 | 2015年1月10日 |
#2071 in Rust模式
27每月下载量
用于 2 crate
195KB
3.5K SLoC
extprim
感谢RFC 1504 “int128”,从1.16版本开始,您可以直接在nightly Rust中使用
i128
和u128
,建议使用内置类型。
稳定版Rust的额外原始类型。目前包括
u128
(无符号128位整数)i128
(有符号128位整数)
您也可能在其他crate中找到其他原始类型
u12
→ twelve_bitf16
→ halfd128
→ decimalComplex<T>
→ num-complex
用法
# Cargo.toml
[dependencies]
extprim = "1"
如果您想使用 u128!()
和 i128!()
宏,请包含 extprim_literals
插件。
# Cargo.toml
[dependencies]
extprim = "1"
extprim_literals = "2"
示例
#[macro_use]
extern crate extprim_literals;
extern crate extprim;
use std::str::FromStr;
use extprim::i128::i128;
fn main() {
let a = i128::from_str("100000000000000000000000000000000000000").unwrap();
// convert string to u128 or i128
let b = i128::new(10).pow(38);
// 64-bit integers can be directly new'ed
assert_eq!(a, b);
let c = i128::from_parts(5421010862427522170, 687399551400673280);
// represent using the higher- and lower-64-bit parts
let d = c - a;
// standard operators like +, -, *, /, %, etc. work as expected.
assert_eq!(d, i128::zero());
const e: i128 = i128!(100000000000000000000000000000000000000);
// use the literal macros
assert_eq!(a, e);
}
lib.rs
:
extprim
的字面量宏。
此crate提供了一个语法扩展(在稳定版),使得可以使用 i128!()
和 u128!()
宏在编译时构建 extprim
类型。
设置
只需将 extprim_literals
添加到 Cargo.toml
中的依赖项
[dependencies]
extprim_literals = "2.0"
在 src/consts.rs
中使用宏
#[macro_use] extern crate extprim_literals;
extern crate extprim;
use extprim::u128::u128;
const TEN: u128 = u128!(10);
依赖项
~1–1.9MB
~34K SLoC