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

企业全屏网站p2p 网站开发

企业全屏网站,p2p 网站开发,注册公司有什么好处,哪个网站可以做翻译兼职一、源码 这段代码是类型级二进制数(包括正数和负数)的取反和取负操作。它使用了类型系统来表示二进制数,并通过特质(trait)和泛型来实现递归操作。 use super::basic::{B0, B1, Z0, N1}; use core::ops::Neg;// 反…

一、源码

这段代码是类型级二进制数(包括正数和负数)的取反和取负操作。它使用了类型系统来表示二进制数,并通过特质(trait)和泛型来实现递归操作。

use super::basic::{B0, B1, Z0, N1};
use core::ops::Neg;// ==================== 反码特质 ====================
pub(crate) trait Invert {type Output;
}impl Invert for Z0 { // Z0 (0) 的取反type Output = N1;
}impl Invert for N1 { // N1 (-1) 的取反type Output = Z0;
}impl<H: Invert> Invert for B0<H> { // B0<H> (...0) 的取反type Output = B1<H::Output>;
}impl<H: Invert> Invert for B1<H> { // B1<H> (...1) 的取反type Output = B0<H::Output>;
}// ==================== 运算符重载 ====================
impl Neg for Z0 { // Z0 (0) 的取负type Output = Z0;fn neg(self) -> Self::Output {Z0}
}impl Neg for N1 { // N1 (-1) 的取负type Output = B1<Z0>;fn neg(self) -> Self::Output {B1::new()}
}impl Neg for B1<Z0> { // 特化B1<Z0> (1) 的取负,防止负数最高位有B1type Output = N1;fn neg(self) -> Self::Output {N1}
}impl<H> Neg for B0<H>
whereH: Neg,  // 只需要递归取负
{type Output = B0<<H as Neg>::Output>;   // 递归调用Negfn neg(self) -> Self::Output {B0::new()  // 递归调用Neg}
}impl<H> Neg for B1<H>
whereH: Invert, 
{type Output = B1<<H as Invert>::Output>;  // 没有进位了,高位取反fn neg(self) -> Self::Output {B1::new() }
}

二、基本类型导入

use super::basic::{B0, B1, Z0, N1};
use core::ops::Neg;
  • B0和B1表示二进制位0和1

  • Z0表示数值0,同时表示正数高位停止符

  • N1表示数值-1,同时表示负数高位停止符

  • Neg是Rust的标准负号运算符特质

三、反码特质Invert

pub(crate) trait Invert {type Output;
}

这个特质定义了类型级别的取反操作(按位取反),关联类型Output表示取反后的结果类型。

具体实现:

  • Z0的取反:0的按位取反是-1
impl Invert for Z0 {type Output = N1;
}
  • N1的取反:-1的按位取反是0
impl Invert for N1 {type Output = Z0;
}
  • B0的取反:以0结尾的数取反后变为以1结尾,高位继续取反
impl<H: Invert> Invert for B0<H> {type Output = B1<H::Output>;
}
  • B1的取反:以1结尾的数取反后变为以0结尾,高位继续取反
impl<H: Invert> Invert for B1<H> {type Output = B0<H::Output>;
}

四、负号运算符重载Neg

这部分实现了数值的取负操作(补码表示)。

具体实现:
  • Z0的取负:0的负数还是0
impl Neg for Z0 {type Output = Z0;fn neg(self) -> Self::Output {Z0}
}
  • N1的取负:-1的负数是1(用B1表示)
impl Neg for N1 {type Output = B1<Z0>;fn neg(self) -> Self::Output {B1::new()}
}
  • B1的特化处理:1的负数是-1(防止负数最高位出现B1)
impl Neg for B1<Z0> {type Output = N1;fn neg(self) -> Self::Output {N1}
}
  • B0的取负:以0结尾的数取负,高位直接取负,低位保持0
impl<H> Neg for B0<H>
whereH: Neg,
{type Output = B0<<H as Neg>::Output>;fn neg(self) -> Self::Output {B0::new()}
}
  • B1的取负:以1结尾的数取负,高位取反(不需要进位)
impl<H> Neg for B1<H>
whereH: Invert, 
{type Output = B1<<H as Invert>::Output>;fn neg(self) -> Self::Output {B1::new() }
}

五、关键点说明:

  1. 类型级编程:这是在编译期通过类型系统进行的计算,没有运行时开销。

  2. 二进制表示:

  • B0表示在类型H表示的二进制数后面加个0

  • B1表示在类型H表示的二进制数后面加个1

  1. 负数表示:使用补码形式,N1表示负号位及该位及更高位全1。

  2. 递归处理:通过泛型和特质约束实现递归操作。

六、示例说明:

  • 取反操作(按位非):

    • !0 (Z0) → -1 (N1)

    • !-1 (N1) → 0 (Z0)

    • !B0 (2) → B1 (-3)

  • 取负操作:

    • -0 (Z0) → 0 (Z0)

    • –1 (N1) → 1 (B1)

    • -B1 (1) → -1 (N1)

这段代码展示了Rust强大的类型系统能力,可以在编译期完成复杂的数值运算类型推导。


文章转载自:

http://zWgqcaHj.wxqmc.cn
http://8oVxWHau.wxqmc.cn
http://TGeIY7gG.wxqmc.cn
http://1d7EU5es.wxqmc.cn
http://8qqsCvNA.wxqmc.cn
http://TP4lu1oY.wxqmc.cn
http://Ba7aLttG.wxqmc.cn
http://ILXIb2yH.wxqmc.cn
http://hnyqgMIk.wxqmc.cn
http://KteRcidI.wxqmc.cn
http://Zmhuz465.wxqmc.cn
http://QHHyGQ18.wxqmc.cn
http://QpYSAQIP.wxqmc.cn
http://n3nfVsjJ.wxqmc.cn
http://yiW1m3d9.wxqmc.cn
http://EcC5lcsi.wxqmc.cn
http://ca1Xdt9u.wxqmc.cn
http://fRFYNKMW.wxqmc.cn
http://ceElTqzU.wxqmc.cn
http://H76Y3BTS.wxqmc.cn
http://UgBM7gQz.wxqmc.cn
http://6qOYE4Gb.wxqmc.cn
http://3FnZNoHl.wxqmc.cn
http://F5tSXAUZ.wxqmc.cn
http://ZFBjkBXR.wxqmc.cn
http://IXtNaDc3.wxqmc.cn
http://ZprAWEYE.wxqmc.cn
http://OPCvrd1W.wxqmc.cn
http://LbiRRVZE.wxqmc.cn
http://uhYX3qi6.wxqmc.cn
http://www.dtcms.com/wzjs/715380.html

相关文章:

  • 网站防黑客入侵做相关防御做平台好还是做网站好
  • 旅游网站国内外研究现状手机免费制作ppt
  • 足球比分网站怎么建设山东省住房城乡建设厅查询网站
  • 高端网站设计新感觉建站兖州建设公司网站
  • 广州市天河区建设局官方网站上海网站建设排名
  • 哈尔滨网站提升排名wordpress自定义缩略图
  • 网站开发 荣誉资质wordpress 栏目标题
  • 杭州网站设计制作网络热词
  • 免备案空间网站天津建设工程信息网招标公告
  • 建网站难吗?wordpress注册确认信
  • 学生怎样建设网站局门户网站建设工作汇报
  • 广州网站建设新际全能医院网站管理系统
  • 大连免费网站制作wordpress 主题窜改
  • jquery做的装修网站电子商务网站功能设计
  • 系统网站有哪些开一个工作室需要多少钱
  • 开发手机网站教程互联网公司市值
  • 做dota2菠菜网站html教程pdf
  • wordpress 过滤标签网站有源代码如何做seo
  • apmserve设置多个网站危险网站怎么办
  • 网网站基础建设优化知识网站app有哪些功能
  • 济南做网站找大标如何规避电子政务门户网站建设的教训
  • 如何搭建一个属于自己的网站企业微信功能详细介绍
  • 可以自己做网站服务器不东营网站建设优选案例
  • 苏州智信建设职业培训网站订做网站策划
  • 前端网站做完 后端用什么做外包app开发价格表
  • 简单的网站多少钱软件商店安装app
  • 虚拟主机做多个网站使页面具有动态效果的网站建设技术是
  • 网站开发项目文档广州越秀区初中排名
  • 网站编程培训学校有哪些和京东一样的网站
  • 网站做接口到app 价格网站公司优势