Rust in Action笔记 第五章 深入理解数据

  1. 如果希望看到f32类型的数转换成整型数字u32类型,需要在unsafe包裹下调用std::mem::transmute(data),因为在安全的Rust语法中没有把整型数据按照bit转换成浮点数据的实现,如果想要看到浮点数的二进制输出(通过{:b}),需要先通过unsafe把浮点数转换成整型数再输出;
  2. 大端(big endian)和小端(little endian)区别在于大端表示法的高位先写,例如123,高位为1,低位为3,大端表示法的写法是123,小端表示法的写法是321,大小端的高低位的单位通常是字节Byte;
  3. 浮点数的构成,符号位(sign),有效数(mantissa),底数(base),指数(exponent),图5.1给出了一个32位的浮点数的组织方式;图5.1
  4. 单目运算符负号-的优先级低于方法调用,所以对于一个负数调用其方法的时候要用括号包裹起来,例如(-1.0)_f32.powf(0.0)-1.0_f32.powf(0.0)的逻辑是不一样的,前者是 ( − 1 ) 0 (-1)^0 (1)0 而后者是 − ( 1 0 ) -(1^0) (10)
  5. PartialEq可以让数据通过等号==来比较,即只需要值相等即可,Eq可以让数据转化成任何合理的值来进行比较,要求数据在bit级别都要相等(可能存在某些表示法让不同的bitmap值相等的情况),Eq的要求比PartialEq更加严格,Eq的调用可以用person1.eq(&person2)
  6. 为自定义数据实现std::convert::From可以实现通用数据类型自动转换成自定义数据,具体可见Page155;
  7. 可以为模块(mod)、类型(struct)、枚举(enum)等加上前缀pub来使之成为公有的,pub的使用有多种类型,pub(crate)可以暴露给整个crate的其他模块,pub(super)仅暴露给父模块,pub(in path)仅暴露给指定路径的模块,pub(self)显式地声明该模块是私有的(private);
  8. 5.7节实现了一个简单的CPU功能,包含加法器、乘法器,主要跟指令架构和数字表示有关;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值