gpt4 book ai didi

rust - 有没有办法在没有 overflowing_literals 警告的情况下通过二进制赋值获得负数?

转载 作者:行者123 更新时间:2023-11-29 08:02:27 26 4
gpt4 key购买 nike

有没有办法在没有警告的情况下通过二进制分配获得负数,同时保留其他更有效的警告。还是我想错了?

const NEG: i32 = 0b1000_0000_0000_0000_0000_0000_0000_0000;
// -2147483648
warning: literal out of range for i32
--> src/main.rs:1:18
|
1 | const NEG: i32 = 0b1000_0000_0000_0000_0000_0000_0000_0000;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: #[warn(overflowing_literals)] on by default

最佳答案

您可以从无符号类型开始,然后转换为有符号类型:

const NEG: i32 = 0b1000_0000_0000_0000_0000_0000_0000_0000_u32 as i32;

without the warning while preserving the other, more valid warnings

您可以禁用特定表达式的特定警告:

#[allow(overflowing_literals)]
const NEG: i32 = 0b1000_0000_0000_0000_0000_0000_0000_0000;

但是,这种原始行为似乎是不正确的。二进制值未超出 i32 的范围。 An issue seems to exist .

关于rust - 有没有办法在没有 overflowing_literals 警告的情况下通过二进制赋值获得负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49078647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com