1- # 整数
1+ # 整数与整数运算
22** 整数** 是用于运算的最基本的数据类型之一。整数被广泛使用,例如它可以用于:
33* 纯粹的整数运算
44* 控制循环次数
55* 控制索引位置
66
77## 整数类型
8- Julia 中的整数类型包含了所有常见的[ 位数] ( ../knowledge/bits.md#位 ) 。以下是常见的整数类型。
8+ Julia 中的整数类型包含了所有常见的[ 位数] ( ../knowledge/bits.md#位 ) 。以下是常见的整数类型:
99| 类型 | 带符号 | 位数 |
1010| :-: | :-: | :-: |
1111| ` Int8 ` | Y | 8 |
@@ -20,7 +20,7 @@ Julia 中的整数类型包含了所有常见的[位数](../knowledge/bits.md#
2020| ` UInt128 ` | N | 128 |
2121
2222整数类型的命名是有规律的。
23- * ` int ` 是 ` integer ` 的缩写。
23+ * ` int ` 是整数的英文 ` integer ` 的缩写。
2424* ` u ` 是** 无符号** (unsigned)的缩写。` U ` 开头的表示无符号类型,即该类型的值保持在** 非负** 整数。
2525* 末尾的数字表示类型的位数。
2626
@@ -43,7 +43,7 @@ julia> typeof(1234)
4343Int64
4444```
4545
46- 无符号整数以十六进制、二进制或八进制表示(后 2 个基本没人用),会根据数据大小自动改变类型位数
46+ 无符号整数可以以十六进制表示(甚至可以以二进制与八进制表示),会根据数据大小自动选取类型位数:
4747``` julia-repl
4848julia> typeof(0xbeef)
4949UInt16
@@ -55,9 +55,9 @@ julia> typeof(0x0)
5555UInt8
5656```
5757
58- 如果你没有得到你期望的结果 ,可以强制类型转化
58+ 如果你没有得到你期望的类型 ,可以强制类型转化:
5959``` julia-repl
60- julia> x = UInt8(100)
60+ julia> x = UInt8(100) # 或者 `x :: UInt8 = 100`
61610x64
6262
6363julia> typeof(x)
7070预定义了 ` Int ` 与 ` UInt ` 类型,位数对应系统位数(通常是 64)
7171
7272!!! note
73- 如果你熟悉 C 语言,那么 Julia 提供了以 C 中 ` int ` 等类型命名的类型,它们是以上整数类型的别名。
74- ` Cint ` ,` Cintmax_t ` ,` Clong ` ,` Clonglong ` ,` Cshort ` ,` Csize_t ` ,` Cssize_t ` ,` Cptrdiff_t ` ,
75- ` Cuint ` ,` Cuintmax_t ` ,` Culong ` ,` Culonglong ` ,` Cushort ` 。
73+ 如果你熟悉 C 语言,可以找到 Julia 提供的以 C 中类型命名的类型,它们实际上是以上整数类型的别名。这包括:` Cint ` , ` Cintmax_t ` , ` Clong ` , ` Clonglong ` , ` Cshort ` , ` Csize_t ` , ` Cssize_t ` ,` Cptrdiff_t ` , ` Cuint ` , ` Cuintmax_t ` , ` Culong ` , ` Culonglong ` , ` Cushort ` .
7674
7775## 高精度整数
7876高精度整数的类型名为 ` BigInt ` ,它们可以使用 ` big(值) ` 定义。这可以表示相当大的整数。
@@ -112,9 +110,9 @@ julia> 2(x-1)
11211014
113111```
114112
115- 在样例 ` 2(x-1) ` 中,` * ` 号被省略了,这是 Julia 用以更符合数学书写习惯的设计 [ ^ 3 ]
113+ 在样例 ` 2(x-1) ` 中,` * ` 号被省略了,这是 Julia 用以更符合数学书写习惯采取的设计。 [ ^ 3 ]
116114
117- 可以在** 二元** 运算符后加 ` = ` ,变成复合赋值操作符,会对前者进行改变
115+ 可以在** 二元** 运算符后加 ` = ` ,变成复合赋值操作符,会对前者进行改变:
118116``` julia-repl
119117julia> a = 1
1201181
@@ -135,7 +133,7 @@ julia> a, b
135133(3, 2)
136134```
137135
138- 你可能会发现,一些变量在操作后类型发生了改变
136+ 你可能会发现,一些变量在操作后类型发生了改变:
139137``` julia-repl
140138julia> v = Int16(0)
1411390
@@ -158,8 +156,8 @@ Int64
158156| ` x & y ` | 按位与 | |
159157| `x | y` | 按位或 | |
160158| ` x ⊻ y ` | 按位异或 | 也可以使用 ` xor(x, y) ` ,或用 ` \xor ` + Tab 打出该符号 |
161- | ` x ⊼ y ` | 按位非与 | 同上,对应 ` nand ` |
162- | ` x ⊽ y ` | 按位非或 | 同上,对应 ` nor ` |
159+ | ` x ⊼ y ` | 按位非与 | 同上,对应的是 ` nand ` |
160+ | ` x ⊽ y ` | 按位非或 | 同上,对应的是 ` nor ` |
163161| ` x >>> y ` | 逻辑右移 | |
164162| ` x >> y ` | 算术右移 | |
165163| ` x << y ` | 逻辑/算术左移 | |
@@ -202,7 +200,7 @@ julia> left <= x <= right # 你通常会这样用它
202200```
203201
204202## 练习
205- - 试计算 $5^{40}$
203+ - 使用 Julia 计算 $5^{40}$ 的结果
206204
207205[ ^ 1 ] : 更多内容参见 < https://docs.juliacn.com/latest/manual/mathematical-operations/ >
208206[ ^ 3 ] : 但是不会存在诸如把 ` xy ` 解析成 ` x * y ` 的情况
0 commit comments