ASR和LSR的区别

swa*_*wag 0 linux arm

右移有什么区别?我知道 ASL 和 LSL 是相同的,但我不知道 ASR 和 LSR 的区别,我尝试搜索但找不到可靠的答案。

Dri*_*512 5

实际上,我可以解释的区别LSRASR

  • LSR是逻辑右移。它将移位,并且最高位变为 0。这等效于将 unsigned int 除以 2 的幂。
  • ASR是算术右移。它会移动数字,同时考虑数字是正数还是负数。它实际上会移位,但最高位获得第 31 位的值(而不是 0)。这具有将有符号整数除以 2 的幂的效果。