From 79993b16c36e8f5023ee1074a695381699009957 Mon Sep 17 00:00:00 2001
From: lhydave <lhydave@163.com>
Date: Sat, 30 Nov 2024 10:38:48 +0800
Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A32.2.1=E6=95=B4?=
 =?UTF-8?q?=E6=95=B0=E7=B1=BB=E5=9E=8B=E9=83=A8=E5=88=86=E7=9A=84typo?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/basic/base-type/numbers.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/basic/base-type/numbers.md b/src/basic/base-type/numbers.md
index cd785ca8..3e65f0b7 100644
--- a/src/basic/base-type/numbers.md
+++ b/src/basic/base-type/numbers.md
@@ -29,7 +29,7 @@ Rust 使用一个相对传统的语法来创建整数(`1`,`2`,...)和浮
 
 此外,`isize` 和 `usize` 类型取决于程序运行的计算机 CPU 类型: 若 CPU 是 32 位的,则这两个类型是 32 位的,同理,若 CPU 是 64 位,那么它们则是 64 位。
 
-整形字面量可以用下表的形式书写:
+整型字面量可以用下表的形式书写:
 
 | 数字字面量         | 示例          |
 | ------------------ | ------------- |

From af0f2b35559c381c7fea77f90d37742b7a9574f0 Mon Sep 17 00:00:00 2001
From: lhydave <lhydave@163.com>
Date: Sat, 30 Nov 2024 10:39:55 +0800
Subject: [PATCH 2/3] =?UTF-8?q?docs:=20=E5=9C=A82.2.1=E4=BD=8D=E8=BF=90?=
 =?UTF-8?q?=E7=AE=97=E9=83=A8=E5=88=86=E6=B7=BB=E5=8A=A0=E5=85=B3=E4=BA=8E?=
 =?UTF-8?q?Rust=E7=A7=BB=E4=BD=8D=E8=BF=90=E7=AE=97=E7=9A=84=E6=BA=A2?=
 =?UTF-8?q?=E5=87=BA=E6=A3=80=E6=9F=A5=E8=AF=B4=E6=98=8E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/basic/base-type/numbers.md | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/basic/base-type/numbers.md b/src/basic/base-type/numbers.md
index 3e65f0b7..951754d0 100644
--- a/src/basic/base-type/numbers.md
+++ b/src/basic/base-type/numbers.md
@@ -289,6 +289,18 @@ fn main() {
 ```
 
 
+对于移位运算,Rust 会检查它是否超出改整型的位数范围,如果超出,则会报错 overflow。比如,一个 8 位的整型,如果试图移位 8 位,就会报错,但如果移位 7 位就不会。Rust 这样做的理由也很简单,如果移位太多,那么这个移位后的数字就是全 0 或者全 1,所以移位操作不如直接写 0 或者 -1,这很可能意味着这里的代码是有问题的。需要注意的是,不论 debug 模式还是 release 模式,Rust 都会检查溢出。
+
+```rust
+fn main() {
+   let a: u8 = 255;
+   let b = a>>7; // ok
+   let b = a<<7; // ok
+   let b = a>>8; // overflow
+   let b = a<<8; // overflow
+}
+```
+
 ## 序列(Range)
 
 Rust 提供了一个非常简洁的方式,用来生成连续的数值,例如 `1..5`,生成从 1 到 4 的连续数字,不包含 5 ;`1..=5`,生成从 1 到 5 的连续数字,包含 5,它的用途很简单,常常用于循环中:

From ee350cc0fe3aebcfa9654a24d5d2a4677c2d3d25 Mon Sep 17 00:00:00 2001
From: Sunface <issunface@gmail.com>
Date: Thu, 9 Jan 2025 10:14:02 +0800
Subject: [PATCH 3/3] Update src/basic/base-type/numbers.md

---
 src/basic/base-type/numbers.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/basic/base-type/numbers.md b/src/basic/base-type/numbers.md
index 951754d0..1320446b 100644
--- a/src/basic/base-type/numbers.md
+++ b/src/basic/base-type/numbers.md
@@ -289,7 +289,7 @@ fn main() {
 ```
 
 
-对于移位运算,Rust 会检查它是否超出改整型的位数范围,如果超出,则会报错 overflow。比如,一个 8 位的整型,如果试图移位 8 位,就会报错,但如果移位 7 位就不会。Rust 这样做的理由也很简单,如果移位太多,那么这个移位后的数字就是全 0 或者全 1,所以移位操作不如直接写 0 或者 -1,这很可能意味着这里的代码是有问题的。需要注意的是,不论 debug 模式还是 release 模式,Rust 都会检查溢出。
+对于移位运算,Rust 会检查它是否超出该整型的位数范围,如果超出,则会报错 overflow。比如,一个 8 位的整型,如果试图移位 8 位,就会报错,但如果移位 7 位就不会。Rust 这样做的理由也很简单,如果移位太多,那么这个移位后的数字就是全 0 或者全 1,所以移位操作不如直接写 0 或者 -1,这很可能意味着这里的代码是有问题的。需要注意的是,不论 debug 模式还是 release 模式,Rust 都会检查溢出。
 
 ```rust
 fn main() {