当前位置: 首页 > wzjs >正文

杭州seo教程seo外包公司费用

杭州seo教程,seo外包公司费用,青海百度关键词seo,有哪些比较好的企业网站建设一、源码 这段代码定义了一个类型级(type-level)的二进制数表示系统,使用Rust的泛型结构体来实现。 //! 类型级二进制数表示方案(第二套方案) //! //! 使用嵌套泛型结构体表示二进制数,支持整数和实数表示。 //! //! # 表示规则 /…

一、源码

这段代码定义了一个类型级(type-level)的二进制数表示系统,使用Rust的泛型结构体来实现。

//! 类型级二进制数表示方案(第二套方案)
//!
//! 使用嵌套泛型结构体表示二进制数,支持整数和实数表示。
//!
//! # 表示规则
//!
//! - 整数部分使用嵌套的`B`结构体表示,例如:
//!   - `B<Null, O>` 表示 0
//!   - `B<Null, I>` 表示 -1
//!   - `B<B<Null, O>, I>` 表示 1
//!   - `B<B<Null, O>, O>` 表示 0 (高位0可以省略,实际为`B<Null, O>`)
//!
//! - 十进制科学计数法使用`D`结构体表示:
//!   - `D<I, E10>` 表示 I × 10^E10
//!   - 例如 `D<B<Null, I>, B<Null, I>>` 表示 -1 × 10^-1 = -0.1use crate::sealed::Sealed;/// 类型级二进制数结构体
///
/// # 泛型参数
/// - `H`: 高位部分
///   - `B<H, L>` 表示嵌套的高位
///   - `Null` 表示无更高位
/// - `L`: 低位部分
///   - `I` 表示1
///   - `O` 表示0
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
pub struct B<H, L>(pub H, pub L);/// 十进制科学计数法表示
///
/// # 泛型参数
/// - `I`: 二进制整数部分
/// - `E10`: 10的幂次(使用二进制表示)
///
/// # 示例
/// ```
/// // -2 × 10^1 = -20.0
/// D<B<I, O>, B<O, I>>;
///
/// // 3 × 10^-2 = 0.03
/// D<B<B<B<Null, O>, I>, I>, B<B<Null, I>, O>>;
/// ```
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
pub struct D<I, E10>(pub I, pub E10);/// 类型级比特位0(逻辑假)
#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Debug, Default)]
pub struct O;/// 类型级比特位1(逻辑真)
#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Debug, Default)]
pub struct I;/// 空类型标记,表示无更高位或无小数部分
#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Copy, Debug, Default)]
pub struct Null;// 常用类型别名
pub type Zero = B<Null, O>;
pub type One = B<Null, I>;
pub type NegOne = B<Null, I>;// 实现Default trait
impl<H: Default, L: Default> Default for B<H, L> {fn default() -> Self {B(Default::default(), Default::default())}
}impl<I: Default, E10: Default> Default for D<I, E10> {fn default() -> Self {D(Default::default(), Default::default())}
}// 构造函数实现
impl<H, L> B<H, L> {/// 创建新的二进制数实例#[inline]pub const fn new(h: H, l: L) -> Self {B(h, l)}
}impl<I, E10> D<I, E10> {/// 创建新的十进制数实例#[inline]pub const fn new(int: I, exp: E10) -> Self {D(int, exp)}
}impl Null {/// 创建新的Null实例#[inline(always)]pub const fn new() -> Self {Null}
}impl O {/// 创建新的O实例#[inline(always)]pub const fn new() -> Self {O}
}impl I {/// 创建新的I实例#[inline(always)]pub const fn new() -> Self {I}
}// 密封标记实现
impl<H, L> Sealed for B<H, L> {}
impl<I, E10> Sealed for D<I, E10> {}
impl Sealed for Null {}
impl Sealed for O {}
impl Sealed for I {}

二、源码分析

  1. 核心设计理念
  • 使用嵌套的泛型结构体表示二进制数

  • 支持两种表示形式:

    • 纯二进制整数(B结构体)

    • 十进制科学计数法(D结构体)

  1. 主要结构体
B<H, L> - 二进制数表示
  • H: 高位部分,可以是另一个B结构体或Null(表示没有更高位)

  • L: 最低位,可以是O(0)或I(1)

  • 示例:

    • B<Null, O>: 0

    • B<Null, I>: -1

    • B<B<Null, O>, I>: 1 (01,高位0是符号位,不能省略)

    • B<B<Null, I>, O>: -2 (10)

D<I, E10> - 十进制科学计数法
  • I: 整数部分,用B结构体表示

  • E10: 10的幂次,也用B结构体表示

  • 示例:

    • D<B<Null, I>, B<Null, I>>: -1 × 10⁻¹ = -0.1

    • D<B<I, O>, B<O, I>>: -2 × 10¹ = -20.0

  1. 基本类型
  • O: 表示二进制位0

  • I: 表示二进制位1

  • Null: 表示空/无更高位

  1. 类型别名

pub type Zero = B<Null, O>;  // 0
pub type One = B<Null, I>;   // -1 (注意这里表示-1)
pub type NegOne = B<Null, I>; // -1
  1. 实现细节
  • 派生特质:

    • 为所有结构体派生了一系列标准特质(Eq, PartialEq, Clone, Copy, Debug等)
    • 实现了Default特质,使得这些类型可以默认构造
  • 构造函数:

    • 为每个结构体提供了new方法

    • 基本类型(Null, O, I)的构造函数是内联的

  • 密封特质(Sealed):

    • 实现了Sealed特质,这是一种设计模式,用于限制特质只能在当前crate内实现
  1. 表示规则特点
  • 使用补码表示法,最高位为1表示负数

  • 高位0可以省略(如B<Null, O>表示0而不是B<B<Null, O>, O>)

  • 高位1可以省略(如B<Null, I>表示-1而不是B<B<Null, I>, I>)

  • 十进制数使用科学计数法表示,便于表示实数

  1. 示例解读
  • B<B<B<Null, O>, I>, I>:

    • 从内到外:Null+O=0,B<Null,O>+I=01(1),B<B<Null,O>,I>+I=011(3)

    • 表示3

  • D<B<B<B<Null, O>, I>, I>, B<B<Null, I>, O>>:

    • 整数部分:011(3)

    • 指数部分:B<B<Null,I>,O>=10(-2)

    • 表示3 × 10⁻² = 0.03

这种类型级编程技术在Rust中常用于在编译期进行复杂的类型计算和验证,常见于嵌入式开发、数学库和高安全性应用中。

http://www.dtcms.com/wzjs/543648.html

相关文章:

  • 建设网站过程第一阶段公司网站界面设计
  • 网站首页新世纪建设集团有限公司南漳网站制作
  • 网站开发工具最好用东莞 营销网站制作
  • 济南手机网站建设公司报价腾讯风铃wordpress
  • 外包 网站开发公司站点和网站的区别
  • 网站建设 洪做网站的资金来源
  • 做毕业设计网站的步骤关键词优化排名的步骤
  • 三原做网站网站源码传到服务器上后怎么做
  • 网站关键词没有排名wordpress去除手机版
  • 网络服务提供者知道或应当知道咸宁网站seo
  • 北京 网站制作太原阳性确诊
  • 网站排行wordpress搬家需要修改
  • 湖北华亚建设工程有限公司网站网站建设实习报告范文
  • 租房网站开发视频教程企业网站开发效果
  • 门户网站和搜索网站的区别海南腾雅网络科技有限公司
  • 做婚礼邀请函网站微信在线登录平台
  • 网站建设先进工作者南昌网站排名优化软件
  • wordpress自定义头像合肥网站seo优化排名
  • wordpress小米上海网站 牛巨微网络科技seo公司
  • 奉贤网站建设wordpress 显示评论内容
  • 东莞网站建设网页推广专业定制网页设计
  • 常州门户网站建设镇江专业建网站
  • 做新媒体每天必看的网站中山建站公司
  • 企业融资的三种方式麒麟seo外推软件
  • 漯河网上商城网站建设国内公关公司排名
  • 做装修的网站是不是骗人的网站制作里的更多怎么做
  • 做足球经理头像的网站公司网站备案需要哪些资料
  • 大连智能模板建站怎么在百度上发表文章
  • 潍坊哪家网站制作公司好上海集团网站制作
  • 百度官方网站网址网站首页该怎么做