【RUST】学习笔记-整型
2026/6/24 10:04:02 网站建设 项目流程

打不过就加入:
C++今天已经40年,我用C++编程也已15年。虽然网上有很多看衰C++的看法,但我始终坚信C++会有它顽强的生命力。
但最近看到RUST已经在Linux转正了,所以我打算加入RUST,看看它到底有何魔力。

另外也是为了水点文章,获取“流量券”

文章目录

  • 整型
    • 隐式整型越界的处理
    • 显式整型越界的处理
    • 字面量

整型

RUST中的整型类型基本上等于C++标准<cstdint>头文件中定义的整型对应。

类型含义
u88bits 无符号整型
i88bits 有符号整型
u1616bits 无符号整型
i1616bits 有符号整型
u3232bits 无符号整型
i3232bits 有符号整型
u6464bits 无符号整型
i6464bits 有符号整型
u128128bits 无符号整型
i128128bits 有符号整型
usize机器字宽度的无符号整型
isize机器字宽度的有符号整型

机器字宽度是CPU架构的地址位宽度,32位架构(x86,aarch32等)为32bits,64位架构(x86_64,aarch64等)为64bits。

隐式整型越界的处理

C++对整型计算时发生越界时的行为没有明确定义,而RUST做出了定义。

  • 在debug版本中,整型越界会出现panic。
  • 在release版本中,整型越界会用计算结果与当前类型的最大值取模。

显式整型越界的处理

Rust的标准库中提供四种整型运算方法。这些方法在debug和release版本中的行为是一致的。

方法行为
checked_${alg}返回Option类型,没越界时返回Some(v),溢出时返回None
wrapping_${alg}没越界时返回结果,越界时返回结果与可表示最大值的取模
saturating_${alg}没越界时返回结果,越界时,如果值离最大值近返回最大值,如果值离最小值近返回最小值
overflowing_${alg}返回(result, overflowed)。result为wrapping_${alg}的结果,overflowed为布尔值标识是否越界

上表中${alg} 可以是

标识含义
add加法
sub减法
mul乘法
div除法
rem去余
neg取负
abs取绝对值
pow
shl按位左移
shr按位右移

字面量

  • 在定义字面量时需要在数字后面添加类型后缀以标识数字的类型
  • 数字之间可以使用_进行分割增加可读性
  • 0x、0o 和 0b前缀分别标识十六进制、八进制和二进制

如:

116i8//i8类型字面量0xFFFF_FFFFu32//无符号32bits字面量

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询