Hello 算法 1.1.0 Rust版… ?2?1?0 根据 IEEE 754 标准,32‑bit 长度的 float 由以下三个部分构成。 ‧ 符号位 S :占 1 位,对应 ?31 。 ‧ 指数位 E :占 8 位,对应 ?30?29 … ?23 。 ‧ 分数位 N :占 23 位,对应 ?22?21 … ?0 。 二进制数 float 对应值的计算方法为: val = (−1)?31 × 2(?30?29…?23)2−127 现在我们可以回答最初的问题:float 的表示方式包含指数位,导致其取值范围远大于 int 。根据以上计算, float 可表示的最大正数为 2254−127 × (2 − 2−23) ≈ 3.4 × 1038 ,切换符号位便可得到最小负数。 尽管浮点数 float 扩展了取值范围,但其副作用是牺牲了精度。整数类型 int 将全部 32 比特用于表示数字, 数字是均匀分布的;而由于指数位的存在,浮点数 float 的 的数值越大,相邻两个数字之间的差值就会趋向越 大。 如表 3‑2 所示,指数位 E = 0 和 E = 255 具有特殊含义,用于表示零、无穷大、NaN 等。 表 3‑2 指数位含义 指数位 E 分数位 N = 0 分数位 N ≠ 0 计算公式 0 ±0 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) ×0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版… ?2?1?0 根据 IEEE 754 标准,32‑bit 长度的 float 由以下三个部分构成。 ‧ 符号位 S :占 1 位,对应 ?31 。 ‧ 指数位 E :占 8 位,对应 ?30?29 … ?23 。 ‧ 分数位 N :占 23 位,对应 ?22?21 … ?0 。 二进制数 float 对应值的计算方法为: val = (−1)?31 × 2(?30?29…?23)2−127 现在我们可以回答最初的问题:float 的表示方式包含指数位,导致其取值范围远大于 int 。根据以上计算, float 可表示的最大正数为 2254−127 × (2 − 2−23) ≈ 3.4 × 1038 ,切换符号位便可得到最小负数。 尽管浮点数 float 扩展了取值范围,但其副作用是牺牲了精度。整数类型 int 将全部 32 比特用于表示数字, 数字是均匀分布的;而由于指数位的存在,浮点数 float 的 的数值越大,相邻两个数字之间的差值就会趋向越 大。 如表 3‑2 所示,指数位 E = 0 和 E = 255 具有特殊含义,用于表示零、无穷大、NaN 等。 表 3‑2 指数位含义 指数位 E 分数位 N = 0 分数位 N ≠ 0 计算公式 0 ±0 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) ×0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版… ?2?1?0 根据 IEEE 754 标准,32‑bit 长度的 float 由以下三个部分构成。 ‧ 符号位 S :占 1 位,对应 ?31 。 ‧ 指数位 E :占 8 位,对应 ?30?29 … ?23 。 ‧ 分数位 N :占 23 位,对应 ?22?21 … ?0 。 二进制数 float 对应值的计算方法为: val = (−1)?31 × 2(?30?29…?23)2−127 现在我们可以回答最初的问题:float 的表示方式包含指数位,导致其取值范围远大于 int 。根据以上计算, float 可表示的最大正数为 2254−127 × (2 − 2−23) ≈ 3.4 × 1038 ,切换符号位便可得到最小负数。 尽管浮点数 float 扩展了取值范围,但其副作用是牺牲了精度。整数类型 int 将全部 32 比特用于表示数字, 数字是均匀分布的;而由于指数位的存在,浮点数 float 的 的数值越大,相邻两个数字之间的差值就会趋向越 大。 如表 3‑2 所示,指数位 ? = 0 和 ? = 255 具有特殊含义,用于表示零、无穷大、NaN 等。 表 3‑2 指数位含义 指数位 E 分数位 N = 0 分数位 N ≠ 0 计算公式 0 ±0 次正规数 (−1)S × 2−126 × (0.N) 1, 2, … , 254 正规数 正规数 (−1)S × 2(E−127) ×0 码力 | 383 页 | 17.61 MB | 1 年前3
Comprehensive Rust(简体中文) 202412深入探究裸机 Rust 课程为期一天,旨在介绍如何使用 Rust 进行裸机(嵌入式)开发。其中涵盖了微控制 器和应用处理器。 对于微控制器部分,需要提前购买 BBC micro:bit v2 开发板。每个人都需要安装多个软件包,具体如欢 迎页面中所述。 14 Rust 中的并发 深入探究 Rust 中的并发 课程为期一天,旨在介绍传统并发和 async/await 并发。 你需要设置一个新 debuginfo] target(s) in 0.75s Running `target/debug/exercise` Hello, world! 4. 将 src/main.rs 中 的 样 板 代 码 替 换 为 自 己 的 代 码。例 如,使 用 上 一 页 中 的 示 例,将 src/main.rs 改为: fn main() { println!("Edit me!"); } 卢恩算法用于验证信用卡号。该算法将字符串作为输入内容,并执行以下操作来验证信用卡号: • Ignore all spaces. Reject number with fewer than two digits. • 从右到左,将偶数位的数字乘二。对于数字“1234”,我们将“3”和“1”乘二;对于数字“98765”,将“6” 和“8”乘二。 • 将一个数字乘二后,如果结果大于 9,则将每位数字相加。因此,将“7”乘二得“14”,然后“10 码力 | 359 页 | 1.33 MB | 10 月前3
Comprehensive Rust(繁体中文)51.3 HAL Crate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 51.4 開發板支援 Crate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 51.5 型別狀態模式 . . . . Both microcontrollers and application processors are covered. 針對微控制器,您會需要預先購買 BBC micro:bit 第 2 版開發板。此外,所有人都需要按照歡迎頁面上的 指示安裝多種套件。 14 Concurrency in Rust The Concurrency in Rust deep dive is a full day + debuginfo] target(s) in 0.75s Running `target/debug/exercise` Hello, world! 4. 將 src/main.rs 中的樣板程式碼替換為自己的程式碼。以上一頁的範例為例,替換後的 src/main.rs 會類似如下: fn main() { println!("Edit me!"); } 5. 使用 cargo run0 码力 | 358 页 | 1.41 MB | 10 月前3
Comprehensive Rust(繁体中文) 20240651.3 HAL Crate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 51.4 開發板支援 Crate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 51.5 型別狀態模式 . . . . Both microcontrollers and application processors are covered. 針對微控制器,您會需要預先購買 BBC micro:bit 第 2 版開發板。此外,所有人都需要按照歡迎頁面上的 指示安裝多種套件。 14 Concurrency in Rust The Concurrency in Rust deep dive is a full day + debuginfo] target(s) in 0.75s Running `target/debug/exercise` Hello, world! 4. 將 src/main.rs 中的樣板程式碼替換為自己的程式碼。以上一頁的範例為例,替換後的 src/main.rs 會類似如下: fn main() { println!("Edit me!"); } 5. 使用 cargo run0 码力 | 356 页 | 1.41 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Rust 版,即 ? 為短板、? 為長板。 圖 15‑8 初始狀態 如圖 15‑9 所示,若此時將長板 ? 向短板 ? 靠近,則容量一定變小。 這是因為在移動長板 ? 後,寬度 ? − ? 肯定變小;而高度由短板決定,因此高度只可能不變(? 仍為短板)或 變小(移動後的 ? 成為短板)。 第 15 章 貪婪 www.hello‑algo.com 363 圖 15‑9 向內移動長板後的狀態 反向思考,我們只有向內收縮短板 指標相遇。 圖 15‑11 展示了貪婪策略的執行過程。 1. 初始狀態下,指標 ? 和 ? 分列陣列兩端。 2. 計算當前狀態的容量 ???[?, ?] ,並更新最大容量。 3. 比較板 ? 和板 ? 的高度,並將短板向內移動一格。 第 15 章 貪婪 www.hello‑algo.com 364 4. 迴圈執行第 2. 步和第 3. 步,直至 ? 和 ? 相遇時結束。 第 15 章 j,使其分列陣列兩端 let mut i = 0; let mut j = ht.len() - 1; // 初始最大容量為 0 let mut res = 0; // 迴圈貪婪選擇,直至兩板相遇 while i < j { // 更新最大容量 let cap = std::cmp::min(ht[i], ht[j]) * (j - i) as i32; res = std::cmp::max(res0 码力 | 388 页 | 18.82 MB | 10 月前3
Rust 程序设计语言 简体中文版 1.85.0self: &Self 的缩写。在一个 impl 块中,Self 类型是 impl 块的类型的别名。方法的第一个参数必须有一 个名为 self 的Self 类型的参数,所以 Rust 让你在第一个参数位置上只用 self 这个名字来简 化。注意,我们仍然需要在 self 前面使用 & 来表示这个方法借用了 Self 实例,就像我们在 rectangle: &Rectangle 中做的那样。方法可以选择获得 在函数的返回类型和函数体中,都是对 impl 关键字后所示类型的别名,这里是 Rectangle。 要调用这个关联函数,我们使用结构体名和 :: 语法;比如 let sq = Rectangle::square(3);。 这个函数位于结构体的命名空间中::: 语法用于关联函数和模块创建的命名空间。第七章会 讲到模块。 多个 impl 块 每个结构体都允许拥有多个 impl 块。例如,示例 5-15 中的代码等同于示例 5-16 Ok(()) } 示例 12-22:根据 config.ignore_case 的值调用 search 或 search_case_insensitive 最后需要实际检查环境变量。处理环境变量的函数位于标准库的 env 模块中,所以我们需要在 src/lib.rs 的开头将这个模块引入作用域中。接着使用 env 模块的 var 方法来检查一个叫做 IGNORE_CASE 的环境变量,如示例 12-230 码力 | 562 页 | 3.23 MB | 24 天前3
尝试用RUST写教学操作系统• 教学的要求 – 简洁 • 实验环境:Nachos、XV6、ucore • CPU:X86、MIPS、ARM、RISC-V • 语言:汇编、C、… – 真实 • QEMU、开发板、真实系统 – 开放 • 树莓派、Edison、FPGA 4 已有的尝试 • 用C语言写OS – MIT 6.828 – Harvard cs161 – Stanford0 码力 | 23 页 | 1.53 MB | 1 年前3
洛佳 组件化驱动、ROM运行环境与RustSBI接 外 设 U A R T 、 S P I 和 I 2 C 等 , 通 过 互 斥 I O 引 脚 划 分 资 源 , 抽 象 接 口 , 使 用 片 外 外 设 支 持 库 高 速 板 级 通 信 D D R 、 P S R A M 等 , 结 合 控 制 器 选 择 和 输 入 合 适 的 参 数 , 用 于 准 备 后 续 启 动 过 程 多 媒 体 外 设 M I0 码力 | 21 页 | 3.12 MB | 1 年前3
共 12 条
- 1
- 2













