算术左移和逻辑左移有什么区别?

What is the difference between arithmetic shift left and logical shift left?

我知道算术右移会保留 MSB 而逻辑右移不会。但是算术左移和逻辑左移有什么区别呢?

它们是相同的操作。两者都将位左移并向 LSB 添加“0”。

算术移位的目的是保留MSB。

在左移的情况下,算术和逻辑移位做同样的操作。

在右移的情况下,算术移位保留 MSB,其余位右移

Wikipedia article