相关疑难解决方法(0)

Rust的移位运算符的确切语义是什么?

我试图找到有关<<>>运算符如何处理整数的确切信息,但我找不到一个明确的答案(文档在这方面并不是那么好).

语义的两个部分对我来说并不清楚.首先,哪些位"移入"?

  • 零从一侧(即0b1110_1010u8 << 4 == 0b1010_0000u8)移入,或
  • 比特旋转(即0b1110_1010u8 << 4 == 0b1010_1110u8),或
  • 它是未指定的(如整数的溢出行为未指定),或
  • 别的.

此外,移位如何使用有符号整数?符号位是否也参与了班次?或者这是未指定的?

bit-shift rust

14
推荐指数
2
解决办法
3221
查看次数

如何关闭整数溢出保护?

我的默认 Rust 启用了整数溢出保护,并且会在溢出时停止正在执行的程序。大量算法需要溢出才能正常运行(SHA1、SHA2 等)

integer overflow rust

6
推荐指数
2
解决办法
3176
查看次数

标签 统计

rust ×2

bit-shift ×1

integer ×1

overflow ×1