Java 如何计算2^h*ceil(i/2^h)
是否有一种简单的计算方法:Java 如何计算2^h*ceil(i/2^h),java,bit-manipulation,arithmetic-expressions,Java,Bit Manipulation,Arithmetic Expressions,是否有一种简单的计算方法: (2^h)*ceil(i/(2^h)) 其中i和h是整数,而不显式使用上限函数 例如,对于(2^h)*楼层(i/(2^h)),可以使用以下公式计算 i&-(1<<h) i&-(1显然,你的意思是用^求幂而不是按位异或 (i + (1 << h) - 1) & (-1 << h) (i+)(1@Dijkgraaf-javacan我们不能使用-1抱歉,您能更新答案以包括@harold提到的内容吗?
(2^h)*ceil(i/(2^h))
其中i和h是整数,而不显式使用上限函数
例如,对于(2^h)*楼层(i/(2^h)),可以使用以下公式计算
i&-(1<<h)
i&-(1显然,你的意思是用^
求幂而不是按位异或
(i + (1 << h) - 1) & (-1 << h)
(i+)(1@Dijkgraaf-javacan我们不能使用-1抱歉,您能更新答案以包括@harold提到的内容吗?