x86和其他架构提供了一种方法来在单个操作(DIV
)中获得商和余数。因此,许多语言都有DIVMOD组合操作(例如C#中的DIVREM
,Python中的DIVMOD
或使用C中的div
和div_t
)。我该如何在Rust中实现这一点?
是否有一种优化的方法同时执行两个操作?
let res = (a / b, a % b);
x86和其他架构提供了一种方法来在单个操作(DIV
)中获得商和余数。因此,许多语言都有DIVMOD组合操作(例如C#中的DIVREM
,Python中的DIVMOD
或使用C中的div
和div_t
)。我该如何在Rust中实现这一点?
是否有一种优化的方法同时执行两个操作?
let res = (a / b, a % b);
正如 Rodrigo 已经评论过的那样,编译器能够将其优化掉。为了完整起见,如果您需要用于通用整数类型,则有一个 num_integer::div_rem 方法,但是我建议您在不需要通用性时不要使用此库。