From 4b2e4d294c03304a828f6532dc1ac34a4d0ef434 Mon Sep 17 00:00:00 2001
From: Sefank <12670778+Sefank@users.noreply.github.com>
Date: Mon, 17 Jan 2022 19:34:26 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B9=E7=9B=AE=E4=B8=AD?=
=?UTF-8?q?=E5=85=B6=E4=BB=96=E5=87=BA=E7=8E=B0=E2=80=9C=E8=A1=A5=E7=A0=81?=
=?UTF-8?q?=E2=80=9D=E7=9A=84=E6=96=87=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Sefank <12670778+Sefank@users.noreply.github.com>
---
book/contents/basic/base-type/numbers.md | 2 +-
book/contents/errors/panic-codes.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/book/contents/basic/base-type/numbers.md b/book/contents/basic/base-type/numbers.md
index be5d6ef3..88f70835 100644
--- a/book/contents/basic/base-type/numbers.md
+++ b/book/contents/basic/base-type/numbers.md
@@ -23,7 +23,7 @@ Rust使用一个相对传统的语法来创建整数(`1`,`2`,...)和浮点数(`1
| 128-位 | `i128` | `u128` |
| 视架构而定 | `isize` | `usize` |
-类型定义的形式统一为:有无符号 + 类型大小(位数)。**无符号数**表示数字只能取正数,而**有符号**则表示数字即可以取正数又可以取负数。就像在纸上写数字一样:当要强调符号时,数字前面可以带上正号或负号;然而,当很明显确定数字为正数时,就不需要加上正号了。有符号数字以[二进制补码](https://en.wikipedia.org/wiki/Two%27s_complement)形式存储。
+类型定义的形式统一为:有无符号 + 类型大小(位数)。**无符号数**表示数字只能取正数,而**有符号**则表示数字即可以取正数又可以取负数。就像在纸上写数字一样:当要强调符号时,数字前面可以带上正号或负号;然而,当很明显确定数字为正数时,就不需要加上正号了。有符号数字以[补码](https://en.wikipedia.org/wiki/Two%27s_complement)形式存储。
每个有符号类型规定的数字范围是 -(2n - 1) ~ 2n -
1 - 1,其中 `n` 是该定义形式的位长度。因此 `i8` 可存储数字范围是 -(27) ~ 27 - 1,即 -128 ~ 127。无符号类型可以存储的数字范围是 0 ~ 2n - 1,所以 `u8` 能够存储的数字为 0 ~ 28 - 1,即 0 ~ 255。
diff --git a/book/contents/errors/panic-codes.md b/book/contents/errors/panic-codes.md
index 3f585cf7..1e3e8c21 100644
--- a/book/contents/errors/panic-codes.md
+++ b/book/contents/errors/panic-codes.md
@@ -7,5 +7,5 @@ String slice range indices must occur at valid UTF-8 character boundaries. If yo
>
> 比方说有一个 `u8` ,它可以存放从 0 到 255 的值。那么当你将其修改为范围之外的值,比如 256,则会发生**整型溢出**。关于这一行为 Rust 有一些有趣的规则。当在 debug 模式编译时,Rust 会检查整型溢出若存在这些问题则使程序在编译时 *panic*。Rust 使用这个术语来表明程序因错误而退出。 [该章节](../../errors/panic.md)会详细介绍 panic。
>
-> 在当使用 `--release` 参数进行 release 模式构建时,Rust **不**检测溢出。相反当检测到整型溢出时,Rust 会进行一种被称为二进制补码的方式进行(*two’s complement wrapping*)操作。简而言之,大于该类型最大值的数值会被补码转换成该类型能够支持的对应数字的最小值。比如在 `u8` 的情况下,256 变成 0,257 变成 1,依此类推。程序不会 panic,但是该变量的值可能不是你期望的值。依赖整型溢出包裹的行为不是一种正确的做法。
+> 在当使用 `--release` 参数进行 release 模式构建时,Rust **不**检测溢出。相反,当检测到整型溢出时,Rust 会按照补码循环溢出(*two’s complement wrapping*)的规则处理。简而言之,大于该类型最大值的数值会被补码转换成该类型能够支持的对应数字的最小值。比如在 `u8` 的情况下,256 变成 0,257 变成 1,依此类推。程序不会 panic,但是该变量的值可能不是你期望的值。依赖这种默认行为的代码都应该被认为是错误的代码。
>
\ No newline at end of file