让我们说,我想到的位移 i 两次留和储存价值 f.

f = i << 2;

是正确的?究竟怎么做我这么做C/C++?

有帮助吗?

解决方案

f = i << 2

移位在许多有点繁琐的操作中都很有用。

这曾经是将数字乘以4的好方法。但是,如今,优化编译器往往会为您解决这个问题。

请记住,最左边的两个位被丢弃。

其他提示

作为补充说明:即使你的问题被标记为C++,也许值得注意的是C和C ++在转移负值方面采取了略微不同的路径。在C ++中,对负值执行<<>>的结果是实现定义的。在C <=>是实现定义的,而<=>生成未定义的行为

是的, i << 2, f = i << 2, 或 f <<= 2 所有的东西的一个可能想做移位。

更多的转移注意事项:

  • 你必须 >> 为好。在位的水平, >> 工作方式不同于签署和未签名类型。

  • 优先的 <<>> 是下面的 +-, ,它愚弄一些人,因为人们可能想象他们会更喜欢 */.

为了完整起见,您可以查看此页面: uow TEXTBOOK - <!> gt; bitops.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top