rust - 如何强制 rust 正确格式化十六进制和其他非 base-10 整数?
问题描述
我正在尝试以十六进制表示法打印一个负整数,但无法设法让 rust 自动打印负号。以下代码说明了问题(指向游戏笔的链接):
fn main() {
let x = i8::from_str_radix("-80", 16).unwrap();
assert_eq!(x, -0x80);
println!("{:x}!", x as i8);
}
运行时,此代码写入80!
而stdout
不是预期的 -80。我尝试添加+
符号标志,但输出仍然不正确(实际上,它前面加上了不正确的“+”号!)。据我所知,这个问题会影响除 10 之外的所有基地。Rust 的官方文档没有提到这个怪癖。
我的问题是:
- 这是预期的行为吗?
- 如果确实是有意的,那么是否可以强制 rust 的格式化程序打印一个负号?(以避免将其作为特殊情况处理)。
解决方案
推荐阅读
- java - Firebase 数据库和 Android - 如何在注销时销毁“会话”?
- javascript - VTTCue 未检测到 '\n' 用于 Javascript 中的视频字幕
- java - java - 为什么父子关系中的int和Integer总是在java中打印int?
- javascript - 将简单数组转换为对象
- websocket - Websocket - 突然掉线后重新建立连接
- sql - 如何在存储过程中拆分参数
- spring-boot - 通过命令行覆盖spring application.properties
- android - Android MathView 溢出屏幕宽度
- python - RabbitMq 与 WSL 和 python
- java - 如何将数组列表值返回到单独的数组中?