gpt4 book ai didi

julia - 在 Julia 中找到小于 n 的下一个二的幂

转载 作者:行者123 更新时间:2023-12-01 09:40:08 25 4
gpt4 key购买 nike

我需要在 Julia 中找到小于给定数字的下一个 2 的幂。

smallerpoweroftwo(15) 应该返回 8smallerpoweroftwo(17) 应该返回 16

到目前为止,我已经有了这个,但搜索这串比特对我来说似乎有点老套。也许不是……有什么想法吗?

function smallerpoweroftwo(n::Int)
2^(length(bits(n)) - search(bits(n), '1'))
end

谢谢!

编辑:我主要在想是否有更优雅的方法来使用按位算术来做到这一点。或者是否有像其他语言一样的位长函数?

最佳答案

Julia 的标准库有 prevpow2nextpow2 函数:

help?> prevpow2
search: prevpow2 prevpow prevprod

prevpow2(n)

The largest power of two not greater than n. Returns 0 for n==0, and returns -prevpow2(-n) for negative
arguments.

help?> nextpow2
search: nextpow2 nextpow nextprod

nextpow2(n)

The smallest power of two not less than n. Returns 0 for n==0, and returns -nextpow2(-n) for negative
arguments.

prevpow2 函数应该做你想做的事。

关于julia - 在 Julia 中找到小于 n 的下一个二的幂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39001834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com