6个版本

0.1.5 2020年3月6日
0.1.4 2019年4月22日
0.1.1 2019年3月30日
0.1.0 2018年10月24日

#848算法 中排名

Download history 31/week @ 2024-03-13 35/week @ 2024-03-20 40/week @ 2024-03-27 41/week @ 2024-04-03 36/week @ 2024-04-10 32/week @ 2024-04-17 27/week @ 2024-04-24 29/week @ 2024-05-01 27/week @ 2024-05-08 29/week @ 2024-05-15 26/week @ 2024-05-22 43/week @ 2024-05-29 28/week @ 2024-06-05 29/week @ 2024-06-12 30/week @ 2024-06-19 19/week @ 2024-06-26

每月108 次下载
5 个crate 中使用

MIT/Apache

12KB
213

Open Flash logo

SWF Fixed

crates.io GitHub repository Build status

SWF定点数Rust库。

定点数使用均匀分布的位模式表示十进制值(与浮点数相反,浮点数在接近零时密度增加)。

定点数可以简单地理解为常数除以一个整数值。它由整数部分和小数部分组成:其数学值是 整数部分 + 小数部分 / 2^小数位数

例如,类型 Ufixed8p8 是一个无符号定点数,具有8位整数部分和8位小数部分。它可以表示 u16 / 256 对应的 2^16 个值,每个值之间的间隔(epsilon)是 1 / 256

此crate定义了SWF文件中使用的定点数

名称 整数部分 小数部分 最小值 最大值 epsilon
Sfixed8P8 i8 u8 -128 128 - 1/256 1 / 256
Ufixed8P8 u8 u8 0 256 - 1/256 1 / 256
Sfixed16P16 i16 u16 -2^15 2^15 - 1/2^16 1 / 2^16
Ufixed16P16 u16 u16 0 2^16 - 1/2^16 1 / 2^16

用法

use swf_fixed::Sfixed8P8;

fn main() {
  let a = Sfixed8P8::from_epsilons(256);
  let b = Sfixed8P8::from_value(1f32);
  assert_eq!(a, b);
  let sum: Sfixed8P8 = (a + b);
  let sum_value: f32 = sum.into();
  assert_eq!(sum_value, 2.0f32);
}

贡献

此库是标准的Cargo项目。您可以使用 cargo test 测试您的更改。

在发送PR时请优先考虑非master分支,以便在需要时可以重新合并您的更改。所有提交都必须在 master 上进行(快速合并)。更改必须通过CI才能被接受。

依赖项

~110–345KB