2022年,我有时不得不在远程环境中使用Rust 1. 42. 0(2020年发布)。
如何获得旧版本Rust中usize
的位数?
我曾经遇到过一个类似的问题,我想访问usize
,但发现usize::MAX
在Rust 1.42.0中不存在。当时,我发现std::usize::MAX
在1.42.0中已经存在。然而,不一致的是,std::usize::BITS
并不存在。
| | 新 rust | rust eclipse 1.42.0|
| - -|- -|- -|
| 最大值|usize::MAX
(Rust 1.43.0或更新版本)|std::usize::MAX
或usize::max_value()
|
| 最小值|usize::MIN
(Rust 1.43.0或更新版本)|std::usize::MIN
或usize::min_value()
|
| 位数|usize::BITS
(Rust 1.53.0或更新版本)|***std::usize::BITS
或usize::bits_value()
不存在***。|
1条答案
按热度按时间odopli941#
据我所知,没有像
usize::BITS
或usize::bits_value()
这样的内置简单方法。您必须使用相对较低级别的操作来直接计算位数:
(但是,请注意,
usize::BITS
的类型为u32
,而size_of()
返回usize
。)根据相关的pull请求(Add associated constant BITS to all integer types #76492),似乎这种不便是Rust 1.53.0中首先添加
usize::BITS
的原因。