【问题标题】:How to compute 2^h*ceil(i/2^h)如何计算 2^h*ceil(i/2^h)
【发布时间】:2017-05-17 03:57:00
【问题描述】:

有没有简单的计算方法:

(2^h)*ceil(i/(2^h))

其中 i 和 h 是整数,没有明确使用上限函数?

例如,对于 (2^h)*floor(i/(2^h)) 可以使用类似的东西计算

i&-(1<<h)

不使用地板功能。

【问题讨论】:

  • @Dijkgraaf java

标签: java bit-manipulation arithmetic-expressions


【解决方案1】:

显然你的意思是^ 取幂而不是按位异或。所以像

(i + (1 << h) - 1) & (-1 << h)

应该可以。

【讨论】:

  • 我们不能在那里使用-1 &lt;&lt; h 并保存操作吗?
  • 抱歉,您能否更新答案以包含@harold 提到的内容?
猜你喜欢
  • 2020-12-07
  • 1970-01-01
  • 2013-09-18
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 2019-07-18
  • 2020-12-15
  • 1970-01-01
相关资源
最近更新 更多