Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我想快速查看执行移位(左/右)的代码的结果是什么,我通常会写下二进制表示并进行移位。 但是对于例如 4 的移位,它实际上更快地编写十六进制表示并将字符/数字向左/向右移动 1 位? 有没有其他技巧呢?
本质上,移动 4 位是删除 1 个十六进制,因为每个十六进制数字都是二进制的 4 位。所以移动 8 位就像删除 2 个十六进制,依此类推。
如果您愿意,您也可以使用八进制进行相同类型的移位,尽管我们将使用 3 而不是 4 位。
或者,如果您希望看到十进制而不是八进制或十六进制的转换,您可以将移位视为表示除法和乘法的一种方式。
通过左移,您可以使用 x1 << x2 作为乘以 2^x2 的一种形式。
通过右移,您可以使用 x1 >> x2 作为除以 2^x2 的一种形式。请注意,这适用于正数,而不是负数。