对于较大的 k 值(CSAPP),按 k 移位

问题描述 投票:0回答:1

我正在《CSAPP》一书中读到有关 k 移位的内容,对于 k 值较大的情况。它正在讨论将由 w 位组成的数据类型移位某个值 k >= w 会产生什么影响。它指出了以下行:

“在许多机器上,移位指令在移位 w 位值时仅考虑移位量的较低 log_2 w 位,因此移位量实际上计算为 k mod w。”

虽然我确实理解 k mod w 部分,但我不明白 CSAPP 的移位量的较低 log_2 w 位意味着什么。我在想,如果我们在 32 位机器上有一个整数,我们想要向左移动 36 个单位,那么我们会将它移动 36 mod 32,即向左移动 4 位。我不确定这如何等于移位量的较低 log_2 32 位 = 5 位。

bit-manipulation bit-shift
1个回答
0
投票

认为 k 是 36(二进制为 100100),而 w 是 32。 这句话的意思是“k mod w”与“仅考虑较低的log_2 w,即k的5位”完全相同。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.