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

免费发布产品网站网站权重能带来什么作用

免费发布产品网站,网站权重能带来什么作用,西安跨境电子商务平台网站,15个网页设计的案例一、源码 这段代码是用Rust实现的类型级二进制非负数减法。它使用了类型系统来表示二进制数并在编译时进行计算。 use crate::number::{Z0, O, I, Bin,BinUnsigned,Sub1, SubOne, BinNormalize, IfB0, };// 非负数减法 pub trait USub<Rhs Self> {type Output;fn usub…

一、源码

这段代码是用Rust实现的类型级二进制非负数减法。它使用了类型系统来表示二进制数并在编译时进行计算。

use crate::number::{Z0, O, I, Bin,BinUnsigned,Sub1, SubOne, BinNormalize, IfB0,
};// ===================== 非负数减法 =====================
pub trait USub<Rhs = Self> {type Output;fn usub(self, rhs: Rhs) -> Self::Output;
}pub type USubOut<A, B> = <A as USub<B>>::Output;impl<U: BinUnsigned> USub<Z0> for U {type Output = U;#[inline]fn usub(self, _: Z0) -> Self::Output { self }
}impl<Ul: BinUnsigned, Ur: BinUnsigned> USub<Bin<Ur, O>> for Bin<Ul, O>
whereUl: USub<Ur>,USubOut<Ul, Ur>: BinNormalize<O>,
{type Output = IfB0<USubOut<Ul, Ur>>;#[inline]fn usub(self, _: Bin<Ur, O>) -> Self::Output { Bin::default() }
}impl<Ul: BinUnsigned, Ur: BinUnsigned> USub<Bin<Ur, O>> for Bin<Ul, I>
whereUl: USub<Ur>,
{type Output = Bin<USubOut<Ul, Ur>, I>;#[inline]fn usub(self, _: Bin<Ur, O>) -> Self::Output { Bin::default() }
}impl<Ul: BinUnsigned, Ur: BinUnsigned> USub<Bin<Ur, I>> for Bin<Ul, O>
whereUl: USub<Ur>,USubOut<Ul, Ur>: SubOne,
{type Output = Bin<Sub1<USubOut<Ul, Ur>>, I>;#[inline]fn usub(self, _: Bin<Ur, I>) -> Self::Output { Bin::default() }
}impl<Ul: BinUnsigned, Ur: BinUnsigned> USub<Bin<Ur, I>> for Bin<Ul, I>
whereUl: USub<Ur>,USubOut<Ul, Ur>: BinNormalize<O>,
{type Output = IfB0<USubOut<Ul, Ur>>;#[inline]fn usub(self, _: Bin<Ur, I>) -> Self::Output { Bin::default() }
}

二、基本概念

  1. 类型级编程:在编译时通过类型系统进行计算,而不是运行时。

  2. 二进制数表示:

  • Z0 表示零

  • O 表示二进制位的0

  • I 表示二进制位的1

  • Bin<U, B> 表示一个二进制数,其中U是更高位的部分,B是最低位(0或1)

三、代码结构

  1. USub trait:

pub trait USub<Rhs = Self> {type Output;fn usub(self, rhs: Rhs) -> Self::Output;
}
  • 定义了非负数减法trait,Rhs是右操作数类型

  • Output关联类型表示减法结果的类型

  • usub方法执行减法操作

  1. USubOut类型别名:

pub type USubOut<A, B> = <A as USub<B>>::Output;
  • 方便获取减法结果的类型
  1. 具体实现:

a. 任何数减去零:


impl<U: BinUnsigned> USub<Z0> for U {type Output = U;fn usub(self, _: Z0) -> Self::Output { self }
}
  • 任何数减去零等于它本身

b. 偶数减偶数(…0 - …0):


impl<Ul, Ur> USub<Bin<Ur, O>> for Bin<Ul, O>> where ...
  • 形式:U0 - V0 = (U-V)0

  • 需要高位相减后规范化(去除前导零)

c. 奇数减偶数(…1 - …0):


impl<Ul, Ur> USub<Bin<Ur, O>> for Bin<Ul, I>> where ...
  • 形式:U1 - V0 = (U-V)1

  • 直接高位相减,最低位保持1

d. 偶数减奇数(…0 - …1):


impl<Ul, Ur> USub<Bin<Ur, I>> for Bin<Ul, O>> where ...
  • 形式:U0 - V1 = (U-V-1)1

  • 需要高位相减后再减1,结果最低位为1

e. 奇数减奇数(…1 - …1):

impl<Ul, Ur> USub<Bin<Ur, I>> for Bin<Ul, I>> where ...
  • 形式:U1 - V1 = (U-V)0

  • 高位相减,最低位变0,需要规范化

四、关键点
  1. 递归计算:通过类型系统递归地处理二进制数的每一位

  2. 边界处理:通过BinNormalize处理前导零的情况

  3. 编译时计算:所有操作都在编译时通过类型系统完成

  4. 类型安全:保证不会出现负数结果(因为是非负数减法)

这种技术常用于需要编译时计算保证的场景,如物理单位计算、密码学或嵌入式系统开发。

http://www.dtcms.com/a/498858.html

相关文章:

  • 碰一碰发视频 系统源码 /PHP 语言开发方案
  • 网站大学报名官网入口网站插件代码下载
  • Cors能干什么?为什么需要它?
  • 远程办公自由:rdesktop+cpolar让Windows桌面随身而行
  • 计算机网络(tcp_socket )
  • 【小白笔记】在编程中,如何将概念上的数据结构(比如“树”)转化为代码中具体的数据类型和对象
  • 【STM32项目开源】STM32单片机智能农业大棚控制系统
  • github开源笔记应用程序项目推荐-Joplin
  • 【Swift】LeetCode 438. 找到字符串中所有字母异位词
  • 【SoC】【W800】基于WM IoT SDK的环境搭建
  • BFS 与 DFS——力扣102.二叉树的层序遍历
  • 使用IOT-Tree的OPC UA Client连接器对接OPC UA Server获取数据到系统中
  • 优质网站建设在哪里wordpress分类目录名称
  • 专题一 之 【双指针】
  • 将Windows应用上架至Microsoft Store
  • 对LlamaFactory的一点见解
  • 紫金保险车险官方网站关键词优化营销
  • 大模型-智能体-【篇一:单智能体框架】
  • LLMs之MultiAgent:OpenAgents(创建AI智能体网络)的简介、安装和使用方法、案例应用之详细攻略
  • IDEA 中 Tomcat 部署 Java Web 项目(2)
  • [SCADE编译原理] 状态机到数据流的源到源翻译(2005)
  • 小迪安全v2023学习笔记(一百三十四讲)—— Windows权限提升篇数据库篇MySQLMSSQLOracle自动化项目
  • 2023年10月份04741计算机网络原理真题及答案
  • Room 概要
  • 元宇宙中的数字身份与数据主权:个体权益的守护与边界
  • 函数模板与类模板:C++泛型编程核心解析
  • [GO]Go语言包访问控制与导入机制
  • Flink细粒度滑动窗口性能优化与解决方案深度解析
  • Flink SQL 窗口函数详细
  • 成都网站建设的公司哪家好网站怎么推广出去